-----------------------------------

这道题就是图论最短路,但是我们要改一下一些细节

比如说,因为这是算汇率,我们的初始化就要是0

我们还要改一改松弛操作

-----------------------------------

还有,题目上给的是汇率(而且是整形)

所以说我们要改成小数

-----------------------------------

以及,汇率是我们在操作中的“损失”

那么,我们留下的部分就是1-汇率(易得)

----------------------------------

DOUBLE警告

----------------------------------

以上就是特别注意

其实还有坑的数据范围100000的数组只能RE

----------------------------------

题目链接:Miku

----------------------------------

#include<iostream>
#include<queue>
#include<stack>
#include<algorithm>
#include<cstring>
using namespace std;
int n,m;
struct bian {int to;int next;double v; //注意,是double
} b[1000010];
double dis[1000010];//double警告
queue<int> q;
int head[1000001];
int pb;
void add(int form,int to,double v) {//double警告pb++;b[pb].to=to;b[pb].v=1-v;//省很多事的b[pb].next=head[form];head[form]=pb;
}
bool vis[1000001];
int main() {memset(dis,0,sizeof(dis));cin>>n>>m;int x,y,z;for(int i=1; i<=m; ++i) {cin>>x>>y>>z;add(x,y,(double)z/100);add(y,x,(double)z/100);//一定要处理成小数
    }cin>>x>>y;{//SPFA部分dis[x]=1;vis[x]=1;q.push(x);//初始化
        {while(q.size())    {int u=q.front();q.pop();vis[u]=0;for(int i=head[u]; i; i=b[i].next) {int v=b[i].to;if(dis[v]<dis[u]*b[i].v) {//特殊操作dis[v]=dis[u]*b[i].v;//特殊操作
                        {if(!vis[v]) {q.push(v);vis[v]=1;}}}}}}}double ans=100/dis[y];//double警告printf("%.8lf",ans);//小数位数哦return 0;
}

AC

------------------------------------

That's all.

转载于:https://www.cnblogs.com/For-Miku/p/11104878.html

P1576 最小花费相关推荐

  1. 信息学奥赛一本通 1344:【例4-4】最小花费 | 洛谷 P1576 最小花费

    [题目链接] ybt 1344:[例4-4]最小花费 洛谷 P1576 最小花费 [题目考点] 1. 图论 单源最短路径 时间复杂度: Dijkstra算法: O(V2)O(V^2)O(V2) Dij ...

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

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

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

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

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

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

  5. 1230: 最小花费(spfa)

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

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

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

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

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

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

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

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

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

最新文章

  1. 1小时学会:最简单的iOS直播推流(六)h264、aac、flv介绍
  2. 转自 David dai linux平台 oracle 数据库 安装文档
  3. es安装IK中文分词器
  4. VS1.4挤房+MH的登陆器
  5. dd模式和iso模式_ISO的完整形式是什么?
  6. 使用计算机软件,计算机使用软件
  7. 软件测试工作总结(二)
  8. java8新特性 函数式编程 Lamda
  9. 卓有成效的管理者-时间管理篇
  10. win10下CUDA和CUDNN的安装(超详细)!亲测有效!
  11. Android12之OpenSL ES中IObject_GetInterface获取引擎接口(十五)
  12. Python基础与拾遗1:Python中的数字
  13. SAP 框架采购订单FO发票验证:
  14. 双指针、BFS与图论
  15. 解决用pyinstaller打包python程序,生成的.exe文件过大问题
  16. IDL 绘制 PLANK黑体辐射曲线
  17. python 异步调用
  18. 苏州大学老师腾讯会议忘记关共享画面不忍直视...
  19. java通讯录带报告
  20. IntelliJ IDEA 2020.2重磅发布!全面支持Github PR。真香版本?

热门文章

  1. python2 python3 import,从python2到python3的导入处理/模块的更改?
  2. arraylist可以存储不同类型吗_结构胶的种类多吗?不同的类型有哪些产品特性?...
  3. 电脑小写字母怎么切换_电脑上也可以使用九州音集啦!
  4. 第一次失效_爱搞机官方出品!永不失效的看片神器,第一次使用就爱上了
  5. 『操作系统』 进程的描述与控制 Part2 进程同步
  6. canal mysql 数据同步
  7. [开源]基于姿态估计的运动计数APP开发(三)
  8. 一个基于用户的API限流策略 Rate Limit
  9. 【OpenPose-Windows】运行OpenposeDemo.exe 如何保存图像运行结果及关节点信息
  10. 【Transformer】ACMix:On the Integration of Self-Attention and Convolution