ssl2206 最小花费
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 最小花费相关推荐
- hdu4122 制作月饼完成订单的最小花费
题意: 有一个加工厂加工月饼的,这个工厂一共开业m小时,2000年1月1日0点是开业的第一个小时,每个小时加工月饼的价钱也不一样,然后每个月饼的保质期都是t天,因为要放在冰箱里保存,所以在 ...
- ZOJ3715 竞选班长求最小花费
题意: 有n个小朋友竞选班长,一号想当班长,每个人都必须选择一个人当班长,并且不可以选择自己,并且每个人都有一个权值ai,这个权值就是如果1想让这个人改变主意选择自己当班长就得给他ai个糖 ...
- LeetCode-动态规划基础题-746. 使用最小花费爬楼梯
描述 746.使用最小花费爬楼梯 数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始). 每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应 ...
- 1230: 最小花费(spfa)
1230: 最小花费 时间限制: 1 Sec 内存限制: 128 MB 题目描述 在n个人中,某些人的银行账号之间可以互相转账.这些人之间转账的手续费各不相同.给定这些人之间转账时需要从转账金额里扣除 ...
- LeetCode Algorithm 746. 使用最小花费爬楼梯
746. 使用最小花费爬楼梯 Ideas 首先确定题目类型,爬楼梯问题,并且给定了状态转移的限制,其实就已经可以确定状态转移方程了. 然后题目说可以从下标为0或下标为1的台阶开始爬,所以我们可以定义两 ...
- 【例4-4】最小花费
[例4-4]最小花费 链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1344 时间限制: 1000 ms 内存限制: 65536 ...
- 算法题目——使用最小花费爬楼梯(动态规划)
题目链接:746.使用最小花费爬楼梯 方法:动态规划 假设数组cost的长度为n,则n个阶梯分别对应下标0到n- 1,楼层顶部对应下标n,问题等价于计算达到下标n的最小花费.可以通过动态规划求解. 创 ...
- 【最短路】【Dijkstra】【图论】最小花费(jzoj 2125)
最小花费 题目大意: n个人,一些人之间可以相互转账,但又手续费x%,问A转给B100元至少要多少钱 样例输入 3 3 1 2 1 2 3 2 1 3 3 1 3 样例输出 103.07153164 ...
- 【图论】【最短路】【Dijkstra】最小花费(ssl 2206/luogu 1576)
最小花费 ssl 2206 luogu 1576 题目大意: 有n个人,他们之间有m对人可以相互{\color{red}相互}相互转账,但要收一定的税,求第x个人转给第y个人至少要多少钱 Descri ...
- 746. 使用最小花费爬楼梯 golang 动态规划
746. 使用最小花费爬楼梯 746. 使用最小花费爬楼梯 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 costi. 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以 ...
最新文章
- DSP学习--BCC校验(异或校验)
- EventLoopGroup 的实例化
- java导出hbase表数据_通用MapReduce程序复制HBase表数据
- java jni 原理_JNI的实现原理
- 简记Ubuntu下载 Android源码
- apscheduler executors
- App后台开发运维和架构实践学习总结(10)——基于Java-JWT前后端token认证实战使用详解
- linux系统root用户忘记密码的重置方法
- Ubuntu录制gif动态图
- 思科GNS3模拟器安装包和流程
- python第三方库re库实例之爬取古诗词网上诗歌
- 忘记teamviewer密码怎么办?
- LeNet-5网络结构详解
- 《最伟大的投资习惯》读书笔记
- React Redux入门
- 用umi脚手架初始化项目提示在此系统禁止运行脚本是为什么?
- C++ reverse()函数
- 比起科技巨头,普通人中的AI开发者都在做什么?
- 微服务 分布式事务解决方案
- iOS开发二维码生成(一)