POJ 1860 Currency Exchange (Bellman-Ford)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MID(x,y) ((x+y)>>1)
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;typedef long long LL;
//¾«¶ÈÄ£°å
const double eps = 1e-8;
bool dy(double x,double y) { return x > y + eps;} // x > y
bool xy(double x,double y) { return x < y - eps;} // x < y
bool dyd(double x,double y) { return x > y - eps;} // x >= y
bool xyd(double x,double y) { return x < y + eps;} // x <= y
bool dd(double x,double y) { return fabs( x - y ) < eps;} // x == ystruct node{int u, v;double rate, commission;
}edge[201];
int n, m, s, k;
double v;
double dist[101];bool bellman_ford(int s, double v){mem(dist, 0);dist[s] = (double)v;while(xyd(dist[s], v)){bool relax = false;for (int i = 0; i < k; i ++){if (xy(dist[edge[i].v], (dist[edge[i].u] - edge[i].commission)*edge[i].rate)){relax = true;dist[edge[i].v] = (dist[edge[i].u] - edge[i].commission)*edge[i].rate;}}if (!relax)break;}if (dy(dist[s], v))return true;return false;
}int main(){scanf("%d %d %d %lf", &n, &m, &s, &v);k = 0;for (int i = 0; i < m; i ++){int tmpa, tmpb;double rab, cab, rba, cba;scanf("%d %d %lf %lf %lf %lf", &tmpa, &tmpb, &rab, &cab, &rba, &cba);edge[k].u = tmpa;edge[k].v = tmpb;edge[k].rate = rab;edge[k++].commission = cab;edge[k].u = tmpb;edge[k].v = tmpa;edge[k].rate = rba;edge[k++].commission = cba;}if (bellman_ford(s, v))puts("YES");elseputs("NO");return 0;
}
转载于:https://www.cnblogs.com/AbandonZHANG/archive/2013/04/11/4114234.html
POJ 1860 Currency Exchange (Bellman-Ford)相关推荐
- POJ 1860 Currency Exchange 最短路+负环
原题链接:http://poj.org/problem?id=1860 Currency Exchange Time Limit: 1000MS Memory Limit: 30000K Tota ...
- poj 1860 Currency Exchange (SPFA、正权回路 bellman-ford)
链接:poj 1860 题意:给定n中货币.以及它们之间的税率.A货币转化为B货币的公式为 B=(V-Cab)*Rab,当中V为A的货币量, 求货币S通过若干此转换,再转换为原本的货币时是否会添加 分 ...
- poj 1860 Currency Exchange (最短路bellman_ford思想找正权环 最长路)
感觉最短路好神奇呀,刚开始我都 没想到用最短路 题目:http://poj.org/problem?id=1860 题意:有多种从a到b的汇率,在你汇钱的过程中还需要支付手续费,那么你所得的钱是 mo ...
- POJ 1860 Currency Exchange (SPFA松弛)
题目链接:http://poj.org/problem?id=1860 题意是给你n种货币,下面m种交换的方式,拥有第s种货币V元.问你最后经过任意转换可不可能有升值.下面给你货币u和货币v,r1是u ...
- POJ 1860 Currency Exchange
英语太渣读了半天,理解了题意就好办了--Bellman_ford算法.在n-1次松弛后,如果依然存在满足松弛的情况返回1.说简单点就是判读是否存在正环. #include<stdio.h> ...
- POJ 1860 Currency Exchange
题目大意:假設有A,B兩種貨幣,要將A換成B,須透過匯率Rab和手續費Cab,因此實際得到B貨幣=(A-Cab)*Rab元. 第一行輸入N, M, S, V,N表示共有N種貨幣(1<=N< ...
- POJ 1860: Currency Exchange 【SPFA】
套汇问题,从源点做SPFA,如果有一个点入队次数大于v次(v表示点的个数)则图中存在负权回路,能够套汇,如果不存在负权回路,则判断下源点到自身的最长路是否大于自身,使用SPFA时松弛操作需要做调整 # ...
- POJ - 1860 货币兑换(bellman)
题目: 传送门 我们城市有几个货币兑换点.让我们假设每个点专门研究两种特定的货币,并且只与这些货币进行兑换操作.可以有多个点专门用于同一对货币.每个点都有自己的汇率,A到B的汇率就是1A得到B的数量. ...
- *【POJ - 1860】Currency Exchange (单源最长路---Bellman_Ford算法判正环)
题干: Description Several currency exchange points are working in our city. Let us suppose that each p ...
最新文章
- SAP HUM嵌套HU研习之HU03显示内层HU数据
- Jfreechart显示数据点图表(线上可以显示点数据)
- 使用php简单网页抓取和内容分析,使用PHP简单网页抓取和内容分析_php
- IT职业发展与诺兰模型
- 将根据时间戳增量数据方案修改为根据批次号增量数据方案
- Precious Plastic 中文手册 V1.0
- VB.NET 教程_04_高级教程
- 零基础学SQL(三、MYSQL环境变量配置及启动)
- vos3000配置与通讯测试(一)
- 《Java编程思想第五章》:初始化与内存
- js vue 获取 (昨天、今天、明天) 时间
- 7939.com,7b.com.cn,9505.com,4199.com 清除工具(转)
- 《恒盛策略》外资巨头突然出手!又有炒股软件罢工
- hdu2072单词数(思维)
- Android数据存储(二)----PreferenceFragment详解
- 如何保护您的数据免遭未经授权的访问
- 1.23 定语从句 感叹句
- 秒杀抢单系统软件架构优化思路
- 易基因 | 文献速递:RRBS方法绘制1538例乳腺癌甲基化图谱并预测癌症发生/预后
- MCD19A2 MAIAC AOD 数据处理(三)均值+同日镶嵌+重投影(Grid转经纬度)
热门文章
- python语言自学-为什么建议大家都学习Python语言?原因在这
- python语言自学-【经验分享】自学Python的学习顺序!附学习资料
- 老师学python可以干嘛-python语言可以干什么
- 安装完python后怎么使用-python安装后怎么启用
- python3.7.2安装-Centos7.6,安装python3.7.2
- python的第三方库-Python 的第三方库到底行不行啊?
- python基本使用-Python的基本用法
- 如何自学python爬虫-python爬虫学习过程:
- python哪一版好用-最好的 Python IDE,你们推荐使用哪一个?
- python 文字语音朗读-python 利用pyttsx3文字转语音过程详解