英语太渣读了半天,理解了题意就好办了……Bellman_ford算法。在n-1次松弛后,如果依然存在满足松弛的情况返回1.说简单点就是判读是否存在正环。

#include<stdio.h>
#include<string.h>
#include<cstring>
#include<string>
#include<math.h>
#include<queue>
#include<algorithm>
#include<iostream>
#include<stdlib.h>
#include<cmath>#define INF 0x3f3f3f3f
#define MAX 1000005using namespace std;struct node
{int a,b;double e,c;
}Map[MAX];int n,m,s,k;double dist[MAX],v;int bellman_ford()
{int i,j,ok;memset(dist,0,sizeof(dist));dist[s]=v;for(i=1;i<n;i++){ok=0;for(j=1;j<k;j++){if(dist[Map[j].b] < (dist[Map[j].a] - Map[j].c)*Map[j].e){dist[Map[j].b] = (dist[Map[j].a] - Map[j].c)*Map[j].e;ok=1;}}if(!ok)break;}for(j=1;j<k;j++){if(dist[Map[j].b] < (dist[Map[j].a] - Map[j].c)*Map[j].e)return 1;}return 0;
}int main()
{int i,j,a,b;double e1,c1,e2,c2;while(scanf("%d%d%d%lf",&n,&m,&s,&v)!=EOF){k=1;for(i=1;i<=m;i++){scanf("%d%d%lf%lf%lf%lf",&a,&b,&e1,&c1,&e2,&c2);Map[k].a=a;Map[k].b=b;Map[k].e=e1;Map[k++].c=c1;Map[k].a=b;Map[k].b=a;Map[k].e=e2;Map[k++].c=c2;}int ok=bellman_ford();if(ok)printf("YES\n");elseprintf("NO\n");}return 0;
}

  

转载于:https://www.cnblogs.com/alan-W/p/5665260.html

POJ 1860 Currency Exchange相关推荐

  1. POJ 1860 Currency Exchange 最短路+负环

    原题链接:http://poj.org/problem?id=1860 Currency Exchange Time Limit: 1000MS   Memory Limit: 30000K Tota ...

  2. poj 1860 Currency Exchange (SPFA、正权回路 bellman-ford)

    链接:poj 1860 题意:给定n中货币.以及它们之间的税率.A货币转化为B货币的公式为 B=(V-Cab)*Rab,当中V为A的货币量, 求货币S通过若干此转换,再转换为原本的货币时是否会添加 分 ...

  3. poj 1860 Currency Exchange (最短路bellman_ford思想找正权环 最长路)

    感觉最短路好神奇呀,刚开始我都 没想到用最短路 题目:http://poj.org/problem?id=1860 题意:有多种从a到b的汇率,在你汇钱的过程中还需要支付手续费,那么你所得的钱是 mo ...

  4. POJ 1860 Currency Exchange (SPFA松弛)

    题目链接:http://poj.org/problem?id=1860 题意是给你n种货币,下面m种交换的方式,拥有第s种货币V元.问你最后经过任意转换可不可能有升值.下面给你货币u和货币v,r1是u ...

  5. POJ 1860 Currency Exchange (Bellman-Ford)

    题目大意:有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0.39,那么你可以得到(100 - 0.39) * 29.75 = 2963.39 ...

  6. POJ 1860 Currency Exchange

    题目大意:假設有A,B兩種貨幣,要將A換成B,須透過匯率Rab和手續費Cab,因此實際得到B貨幣=(A-Cab)*Rab元. 第一行輸入N, M, S, V,N表示共有N種貨幣(1<=N< ...

  7. POJ 1860: Currency Exchange 【SPFA】

    套汇问题,从源点做SPFA,如果有一个点入队次数大于v次(v表示点的个数)则图中存在负权回路,能够套汇,如果不存在负权回路,则判断下源点到自身的最长路是否大于自身,使用SPFA时松弛操作需要做调整 # ...

  8. *【POJ - 1860】Currency Exchange (单源最长路---Bellman_Ford算法判正环)

    题干: Description Several currency exchange points are working in our city. Let us suppose that each p ...

  9. Currency Exchange (POJ 1860)

    Currency Exchange 思路:用spfa来找正环,只要存在一个正环(cnt >= n),那么走这个圈无穷次后资产一定正无穷,因为路是双向的,所以一定可以返回原来的货币,正无穷再怎么亏 ...

最新文章

  1. view controller lifecycle discussion - beforeRendering
  2. Spring管理Hibernate
  3. Mysql数据类型blob存储长度
  4. MySQL建立双向主备复制server配置方法
  5. 【luogu1816】忠(RMQ问题、线段树)
  6. pandas 空值填充
  7. win10系统镜像文件iso下载教程
  8. R语言 正态性检验 Q-Q plot shapiro test
  9. MUI框架-01-介绍-准备-创建项目
  10. Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  11. ISO26262-道路车辆功能安全
  12. 木秀于林,风必摧之;行高于人,众必毁之?
  13. 数值积分方法之2——梯形法与外推法求近似积分
  14. 【图像处理】轮廓二阶矩计算目标中心-计算目标中心位置方法3
  15. 每天五分钟玩转K8S(二)
  16. HTML在手机端禁止放大缩小
  17. axios 请求拦截器响应拦截器
  18. java调用bert_NLP(十九)首次使用BERT的可视化指导
  19. mybatis从入门到精通(刘增辉著)-读书笔记第三章
  20. 2022.12.16 英语单词背诵

热门文章

  1. 2021-2027年中国手机结构件行业投资分析及发展战略研究咨询报告
  2. 程序员必备注释模板---佛祖保佑
  3. 【UML建模】机房中的UML图
  4. 单周期十条指令CPU设计与verilog实现(Modelsim)
  5. Cache 与Memory架构及数据交互
  6. Arm Cortex-M23 MCU,Arm Cortex-M33 MCU与RISC-V MCU技术
  7. 如何保证Qt状态机的最佳性能
  8. 内存缓存LruCache的简单使用
  9. Java方法详细介绍
  10. cmd怎么实现Java你好_java环境配置以及如何在cmd窗口运行java代码