POJ1860Currency Exchange(SPFA)
http://poj.org/problem?id=1860
题意: 题目中主要是说存在货币兑换点,然后现在手里有一种货币,要各种换来换去,最后再换回去的时候看能不能使原本的钱数增多,每一种货币都有对应的汇率,而货币A到货币B的汇率即为1货币A换得得货币B的数量,但兑换点是要收取佣金的,且佣金从源货币中扣除,例如,你想在汇率29.75,佣金为0.39的兑换点把100美元换成卢布,得到的卢布数即为(100-0.39)*29.75 = 2963.3975.
样例解释:
3 2 1 20.0 1 2 1.00 1.00 1.00 1.00 2 3 1.10 1.00 1.10 1.00
多组输入,第一行中N代表有N种货币可以互相兑换,M代表有M个货币兑换点,S代表这个人手中的的货币的编号,V代表这个人手中拥有的货币数量,底下M行
每行六个数,A,B代表可以交换的货币A和B,剩下的实数RAB,CAB,RBA,CBA,代表A到B的汇率,佣金,B到A的汇率,佣金。以某种兑换方式增加原本的钱数,而且必须兑换为原来的货币。
解法:用spfa和Bellman都可以,我用的是spfa,改了一下原模板就过了
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #include<queue> 6 using namespace std; 7 int u,v,w; 8 const int maxn = 1011; 9 const int maxm = 10011; 10 const int oo = 1<<29; 11 struct node 12 { 13 int u; 14 int v; 15 double x,y ; 16 int next; 17 }edge[maxm]; 18 double dis[maxn]; 19 int m,n,num; 20 double ount; 21 int head[maxn],cnt,sum[maxn]; 22 int vis[maxn] = {0}; 23 queue<int>qu; 24 void add(int u,int v,double x,double y) 25 { 26 edge[cnt].u = u ; 27 edge[cnt].v = v ; 28 edge[cnt].x = x ; 29 edge[cnt].y = y ; 30 edge[cnt].next = head[u]; 31 head[u] = cnt++ ; 32 } 33 int spfa(int s) 34 { 35 for(int i = 0 ; i < m ; i++) 36 { 37 dis[i] = 0; 38 vis[i] = 0 ; 39 } 40 dis[s] = ount; 41 qu.push(s); 42 vis[s] = 1 ; 43 while(!qu.empty()) 44 { 45 int u = qu.front(); 46 qu.pop(); 47 vis[u] = 0; 48 for(int i = head[u] ; i != -1 ; i = edge[i].next) 49 { 50 int v = edge[i].v; 51 if((dis[u]-edge[i].y)*edge[i].x > dis[v]) 52 { 53 dis[v] = (dis[u]-edge[i].y)*edge[i].x; 54 if(!vis[v]) 55 { 56 vis[v] = 1; 57 qu.push(v); 58 } 59 sum[v]++; 60 if(sum[v] > m) 61 return -1; 62 } 63 } 64 } 65 return 1; 66 } 67 void Init() 68 { 69 cnt = 0 ; 70 memset(head,-1,sizeof(head)); 71 memset(sum,0,sizeof(sum)); 72 while(!qu.empty()) 73 qu.pop(); 74 } 75 int main() 76 { 77 while(scanf("%d %d %d %lf",&m,&n,&num,&ount)!=EOF) 78 { 79 Init(); 80 int u,v; 81 double x,y,xx,yy ; 82 for(int i = 0 ; i < n ; i++) 83 { 84 scanf("%d %d %lf %lf %lf %lf",&u,&v,&x,&y,&xx,&yy); 85 add(u,v,x,y); 86 add(v,u,xx,yy); 87 } 88 if(spfa(num) > 0) 89 cout<<"NO"<<endl; 90 else cout<<"YES"<<endl; 91 } 92 return 0; 93 }
View Code
http://blog.csdn.net/lyy289065406/article/details/6645778
这个大神用的是Bellman
转载于:https://www.cnblogs.com/luyingfeng/p/3255503.html
POJ1860Currency Exchange(SPFA)相关推荐
- Currency Exchange (SPFA)
点击打开链接 Problem Description Several currency exchange points are working in our city. Let us suppose ...
- [kuangbin带你飞]专题四 最短路练习 B( POJ 2253) Frogger(spfa)
B - Frogger(spfa) 题目链接:https://vjudge.net/contest/66569#problem/B 题目: Freddy Frog is sitting on a st ...
- 用RPC OVER HTTPS发布Exchange(续)
用RPC OVER HTTPS发布Exchange(续) 接着上篇文章[url]http://shuangyang.blog.51cto.com/540829/123386[/url]继续介绍. 3. ...
- 最短路——最短路计数(spfa)
题目链接 最短路--最短路计数(spfa) 题目描述 给出一个 N 个顶点 M 条边的无向无权图,顶点编号为 1-N.问从顶点 1 开始,到其他每个点的最短路有几条. 输入格式 第一行包含 2 个正整 ...
- 最短路——最短路(spfa)
题目链接 最短路--最短路(spfa) 题目描述 简单暴力的题目要求: 给定一个有n个顶点(从1到n编号),m条边的有向图(其中某些边权可能为负,但保证没有负环).请你计算从1号点到其他点的最短路. ...
- 香甜的黄油(SPFA)
香甜的黄油(SPFA) Description 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好 ...
- P6770 [USACO05MAR]Checking an Alibi 不在场的证明(spfa)
不在场的证明 题目传送门 解题思路 这题就和香甜的黄油(SPFA)差不多,改个输入和输出就AC了 AC代码 #include<algorithm> #include<iostream ...
- nyoj 1238 最少换乘(spfa)
描述 欧洲某城是一个著名的旅游胜地,每年都有成千上万的人前来观光旅行.Dr. Kong决定利用暑假好好游览一番.. 年轻人旅游不怕辛苦,不怕劳累,只要费用低就行.但Dr. Kong年过半百,他希望乘坐 ...
- 【NOIP2013】华容道 最短路优化搜索(spfa)
华容道 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 34 Solved: 14 [Submit][Status][Web Board] Descr ...
最新文章
- oracle insert忽略重复数据,Oracle’INSERT ALL’忽略重复项
- jdbc在项目中的应用
- RabbitMQ 的引言
- opengl加载显示3D模型SMD类型文件
- 好玩的Scratch
- webpack进阶之插件篇
- 【产品干货】经典营销模型的产品化介绍
- 【视频教程】JEECG 入门视频教程
- UICamera(NGUI Event system)原理
- 换行与回车(\r \n)的起源以及在编制语言中的使用
- uv4:you are not logged in as an administrator
- 银行家算法的数组方式实现
- LOL易游网络验证破解总结
- MFC之打开(开发)映美精相机
- 使用pkg编译打包nodejs程序成执行文件
- HTML+CSS实现动态效果相册
- 前端HTML转PDF生成的PDF上边会有留白,下边截取不全
- 怎么批量新建文件夹并命名?
- Sourcetree安装详细(最新版本)
- udev和mdev两种热插拔机制
热门文章
- 风变编程Python9 函数的学习
- iframe框架_性能优化去除iframe脚手架升级方案
- 项目服务接口设计_Spring Boot Security 整合 OAuth2 设计安全API接口服务
- 2022年考研计算机组成原理_6 总线
- python如何退出模块_如何将一个 Python 函数进行模块化封装
- 自动拼图android github,GitHub - zero0011/Puzzle: 拼图游戏 , 可自动实现 拼图操作
- html5标签 不可修改,SEO优化不可忽视的5个Html代码标签
- kafka从头消费信息
- Hbase与zookeeper
- spark 字符串操作