【题目描述】

在n个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问A最少需要多少钱使得转账后B收到100元。

【输入】

第一行输入两个正整数n,m,分别表示总人数和可以互相转账的人的对数

以下m行每行输入三个正整数x,y,z,表示标号为x的人和标号为y的人之间互相转账需要扣除z%的手续费 (z<100)。

最后一行输入两个正整数A,B。数据保证A与B之间可以直接或间接地转账。

【输出】

输出A使得B到账100元最少需要的总费用。精确到小数点后8位。

【输入样例】

3 3
1 2 1
2 3 2
1 3 3
1 3

【输出样例】

103.07153164

【源程序】

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<vector>
#include<set>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 10001
#define MOD 123
#define E 1e-6
using namespace std;
int n,m;
double g[N][N],f[N];
int vis[N];
void Dijkstra()
{int sum=1,k;while(sum<n){double minn=INF;for(int i=1;i<=n;i++)if(vis[i]==0&&f[i]<minn){minn=f[i];k=i;}vis[k]=1;sum++;for(int i=1;i<=n;i++)if(vis[i]==0&&f[i]>f[k]*g[k][i])f[i]=f[k]*g[k][i];}
}
int main()
{cin>>n>>m;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(i==j)g[i][j]=0;elseg[i][j]=INF;for(int i=1;i<=m;i++){int x,y,w;cin>>x>>y>>w;g[x][y]=100.0/(100-w);g[y][x]=100.0/(100-w);}int A,B;cin>>A>>B;vis[A]=1;for(int i=1;i<=n;i++)if(g[A][i])f[i]=g[A][i];Dijkstra();printf("%.8lf",f[B]*100);return 0;
}

最小花费(信息学奥赛一本通-T1344)相关推荐

  1. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  2. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  3. 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划 第一节 动 ...

  4. Knight Moves(信息学奥赛一本通-T1450)

    [题目描述] 编写一个程序,计算一个骑士从棋盘上的一个格子到另一个格子所需的最小步数.骑士一步可以移动到的位置由下图给出. [输入] 第一行给出骑士的数量 n. 在接下来的 3n 行中,每 3 行描述 ...

  5. 信息学奥赛一本通 1278:【例9.22】复制书稿(book) | 洛谷 P1281 书的复制

    [题目链接] ybt 1278:[例9.22]复制书稿(book) 洛谷 P1281 书的复制 [题目考点] 1. 动态规划:线性动规 [解题思路] 该题可以抽象为:将由m个数字构成的序列分成k个子段 ...

  6. 信息学奥赛一本通C++语言-----1087:级数求和

    [题目描述] 已知:Sn=1+12+13+-+1nSn=1+12+13+-+1n.显然对于任意一个整数kk,当nn足够大的时候,SnSn大于kk.现给出一个整数k(1<=k<=15)k(1 ...

  7. 信息学奥赛一本通T1451:棋盘游戏

    信息学奥赛一本通T1451:棋盘游戏 [题目描述] 在一个 4×4 的棋盘上有 8 个黑棋和 8 个白棋,当且仅当两个格子有公共边,这两个格子上的棋是相邻的.移动棋子的规则是交换相邻两个棋子. 给出一 ...

  8. 信息学奥赛一本通(C++版)NOIP提高组(1820-1829)

    信息学奥赛一本通(C++版)NOIP提高组目录 //1820 [题目描述] 我们可以用这样的方式来表示一个十进制数:将每个阿拉伯数字乘以一个以该数字所 处位置的(值减1)为指数,以10为底数的幂之和的 ...

  9. 信息学奥赛一本通1114:白细胞计数 视频题解

    信息学奥赛一本通1114:白细胞计数 视频题解 1114:白细胞计数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 38224 通过数: 12593 [题目描述] 医院采样了某临 ...

最新文章

  1. 实现数组(java)
  2. 软考-信息系统项目管理师-战略管理
  3. 文件加解密,文件操作
  4. Linux tar命令高级用法——备份数据
  5. 使用lxml代替beautifulsoup
  6. 综述 | 自动驾驶中的计算机视觉
  7. Java 11 教程
  8. android屏幕同步到macbook,Mirror for Android TV for Mac(屏幕和声音镜像到Android TV的工具)...
  9. STM32固件库包的下载与安装
  10. Java学习资料(一)——Java书籍
  11. element-admin/若依主题风格设计
  12. 重装系统后git库不能使用_重装系统后git库初始化
  13. 中国量化在AI全球盛会上的惊艳亮相
  14. windos下快捷键给文件、文件名重命名
  15. Schema_CN28_XNN0付款/扣除和转账净额
  16. 轻松玩转Windows平板
  17. 新手学编程:代码重构入门-进阶
  18. linux显卡驱动安全模式,win7在安全模式安装显卡驱动的详细教程
  19. 百度地图坐标、Google坐标、腾讯坐标相互转化
  20. 4000字带你深入掌握字符串

热门文章

  1. FreeModbus移植到STM32F107(以太网传输方式)
  2. 92年清华本科,做了30年技术,43岁在CTO的位置上被优化!找了一年多工作,有些迷茫!...
  3. 程序员必备的GitHub加速指南,真香!
  4. 张一鸣:优秀年轻人的五个特点
  5. java源代码加密+使用proguard混淆java web项目代码+自定义Classloader
  6. Java描述设计模式(18):享元模式
  7. 2019.5.18-5.19 ACM-ICPC 全国邀请赛(西安)赛后总结
  8. HTML5在手机端实现视频全屏展示
  9. 最简单的EasyUI菜单栏
  10. devise修改密码