Description

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

Input

第一行输入两个用空格隔开的正整数n和m,分别表示总人数和可以互相转账的人的对数。以下m行每行输入三个用空格隔开的正整数x,y,z,表示标号为x的人和标号为y的人之间互相转账需要扣除z%的手续费(z<100)。最后一行输入两个用空格隔开的正整数A和B。数据保证A与B之间可以直接或间接地转账。

Output

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

题解

先算出每一条路径所花费的手续费,放入a中,然后进行n次循环,每次找到一个到起点距离最短的点变为true,随后枚举所有的不确定的点,如果以此true点为中转到达此点的路径更短的话,这将是此点的最短路径。当我们每确定一个点就修改其他的不确定的点,从而求出最短路径。

vard:array[0..2000] of real;v:array[0..2000] of boolean;s:array[0..2000,0..2000] of real;i,a,b,c,n,m,x,y,l,j:longint;
beginreadln(n,m);for i:=1 to m dobeginreadln(a,b,c);s[a,b]:=(100-c)/100;s[b,a]:=s[a,b];end;readln(x,y);for i:=1 to n dod[i]:=s[x,i];d[x]:=1;v[x]:=true;for i:=1 to n dobeginl:=0;for j:=1 to n doif v[j]=false thenif d[j]>d[l] thenl:=j;v[l]:=true;for j:=1 to n doif (v[j]=false)and(d[l]*s[l,j]>d[j])thend[j]:=d[l]*s[l,j];end;writeln(100/d[y]:0:8);
end.

ssl2206 最小花费相关推荐

  1. hdu4122 制作月饼完成订单的最小花费

    题意:       有一个加工厂加工月饼的,这个工厂一共开业m小时,2000年1月1日0点是开业的第一个小时,每个小时加工月饼的价钱也不一样,然后每个月饼的保质期都是t天,因为要放在冰箱里保存,所以在 ...

  2. ZOJ3715 竞选班长求最小花费

    题意:       有n个小朋友竞选班长,一号想当班长,每个人都必须选择一个人当班长,并且不可以选择自己,并且每个人都有一个权值ai,这个权值就是如果1想让这个人改变主意选择自己当班长就得给他ai个糖 ...

  3. LeetCode-动态规划基础题-746. 使用最小花费爬楼梯

    描述 746.使用最小花费爬楼梯 数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始). 每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应 ...

  4. 1230: 最小花费(spfa)

    1230: 最小花费 时间限制: 1 Sec 内存限制: 128 MB 题目描述 在n个人中,某些人的银行账号之间可以互相转账.这些人之间转账的手续费各不相同.给定这些人之间转账时需要从转账金额里扣除 ...

  5. LeetCode Algorithm 746. 使用最小花费爬楼梯

    746. 使用最小花费爬楼梯 Ideas 首先确定题目类型,爬楼梯问题,并且给定了状态转移的限制,其实就已经可以确定状态转移方程了. 然后题目说可以从下标为0或下标为1的台阶开始爬,所以我们可以定义两 ...

  6. 【例4-4】最小花费

    [例4-4]最小花费 链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1344 时间限制: 1000 ms         内存限制: 65536 ...

  7. 算法题目——使用最小花费爬楼梯(动态规划)

    题目链接:746.使用最小花费爬楼梯 方法:动态规划 假设数组cost的长度为n,则n个阶梯分别对应下标0到n- 1,楼层顶部对应下标n,问题等价于计算达到下标n的最小花费.可以通过动态规划求解. 创 ...

  8. 【最短路】【Dijkstra】【图论】最小花费(jzoj 2125)

    最小花费 题目大意: n个人,一些人之间可以相互转账,但又手续费x%,问A转给B100元至少要多少钱 样例输入 3 3 1 2 1 2 3 2 1 3 3 1 3 样例输出 103.07153164 ...

  9. 【图论】【最短路】【Dijkstra】最小花费(ssl 2206/luogu 1576)

    最小花费 ssl 2206 luogu 1576 题目大意: 有n个人,他们之间有m对人可以相互{\color{red}相互}相互转账,但要收一定的税,求第x个人转给第y个人至少要多少钱 Descri ...

  10. 746. 使用最小花费爬楼梯 golang 动态规划

    746. 使用最小花费爬楼梯 746. 使用最小花费爬楼梯 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 costi. 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以 ...

最新文章

  1. DSP学习--BCC校验(异或校验)
  2. EventLoopGroup 的实例化
  3. java导出hbase表数据_通用MapReduce程序复制HBase表数据
  4. java jni 原理_JNI的实现原理
  5. 简记Ubuntu下载 Android源码
  6. apscheduler executors
  7. App后台开发运维和架构实践学习总结(10)——基于Java-JWT前后端token认证实战使用详解
  8. linux系统root用户忘记密码的重置方法
  9. Ubuntu录制gif动态图
  10. 思科GNS3模拟器安装包和流程
  11. python第三方库re库实例之爬取古诗词网上诗歌
  12. 忘记teamviewer密码怎么办?
  13. LeNet-5网络结构详解
  14. 《最伟大的投资习惯》读书笔记
  15. React Redux入门
  16. 用umi脚手架初始化项目提示在此系统禁止运行脚本是为什么?
  17. C++ reverse()函数
  18. 比起科技巨头,普通人中的AI开发者都在做什么?
  19. 微服务 分布式事务解决方案
  20. iOS开发二维码生成(一)

热门文章

  1. linux 改成utc时间_linux – 如何将时区设置为UTC-8
  2. 计算机国内外SCI/EI收录期刊一览(参考)
  3. 决策树及matlab实现
  4. python数组a减去数组b的简便操作
  5. VIN码识别/车架号识别独家支持云识别
  6. 苹果笔记本没有计算机管理员,Mac管理员账户丢失怎么办
  7. 彩色证件照片常用的红色、蓝色背景颜色值
  8. 软件测试系统流程和常见面试题
  9. 操作系统实验: 进程管理
  10. 世界上5种顶级思维,你一定要知道