链接:poj 1860

题意:给定n中货币。以及它们之间的税率。A货币转化为B货币的公式为 B=(V-Cab)*Rab,当中V为A的货币量,

求货币S通过若干此转换,再转换为原本的货币时是否会添加

分析:这个题就是推断是否存在正权回路。能够用bellman-ford算法,只是松弛条件相反

也能够用SPFA算法,推断经过转换后,转换为原本货币的值是否比原值大、、、

bellman-ford    0MS

#include<stdio.h>
#include<string.h>
struct stu
{int a,b;double r,c;
}edge[205];
double v,dis[105];
int s;
int bellmanford(int n,int m)
{int i,j,flag=0;memset(dis,0,sizeof(dis));dis[s]=v;for(i=1;i<=n-1;i++)for(j=1;j<=m;j++)if(dis[edge[j].a]&&(dis[edge[j].a]-edge[j].c)*edge[j].r>dis[edge[j].b])dis[edge[j].b]=(dis[edge[j].a]-edge[j].c)*edge[j].r;for(j=1;j<=m;j++)if(dis[edge[j].a]&&(dis[edge[j].a]-edge[j].c)*edge[j].r>dis[edge[j].b]){flag=1;break;}return flag;
}
int main()
{int i,j,l,r,n,m,flag;while(scanf("%d%d%d%lf",&n,&m,&s,&v)!=EOF){j=1;for(i=1;i<=m;i++){scanf("%d%d",&l,&r);scanf("%lf%lf",&edge[j].r,&edge[j].c);edge[j].a=l;edge[j].b=r;j++;edge[j].a=r;edge[j].b=l;scanf("%lf%lf",&edge[j].r,&edge[j].c);j++;}flag=bellmanford(n,2*m);if(flag)printf("YES\n");elseprintf("NO\n");}return 0;
}

SPFA+邻接表  16MS

#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
struct stu
{int a,b;double r,c;
}edge[205];
double v,dis[105];
int s,first[205],next[205],vis[105];
int SPFA(int n,int m)
{int i,pos;queue<int> q;memset(dis,0,sizeof(dis));memset(vis,0,sizeof(vis));dis[s]=v;q.push(s);vis[s]=1;while(!q.empty()){pos=q.front();q.pop();vis[pos]=0;i=first[pos];while(i!=-1){if((dis[pos]-edge[i].c)*edge[i].r>dis[edge[i].b]){dis[edge[i].b]=(dis[pos]-edge[i].c)*edge[i].r;if(!vis[edge[i].b]){q.push(edge[i].b);vis[edge[i].b]=1;}}i=next[i];}if(dis[s]>v)return 1;}return 0;
}
int main()
{int i,j,l,r,n,m,flag;while(scanf("%d%d%d%lf",&n,&m,&s,&v)!=EOF){j=1;for(i=1;i<=m;i++){scanf("%d%d",&l,&r);scanf("%lf%lf",&edge[j].r,&edge[j].c);edge[j].a=l;edge[j].b=r;j++;edge[j].a=r;edge[j].b=l;scanf("%lf%lf",&edge[j].r,&edge[j].c);j++;}memset(first,-1,sizeof(first));for(i=1;i<=2*m;i++){next[i]=first[edge[i].a];first[edge[i].a]=i;}flag=SPFA(n,2*m);if(flag)printf("YES\n");elseprintf("NO\n");}return 0;
}

poj 1860 Currency Exchange (SPFA、正权回路 bellman-ford)相关推荐

  1. POJ 1860 Currency Exchange (SPFA松弛)

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

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

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

  3. POJ 1860: Currency Exchange 【SPFA】

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

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

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

  5. POJ 1860 Currency Exchange

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

  6. POJ 1860 Currency Exchange (Bellman-Ford)

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

  7. POJ 1860 Currency Exchange

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

  8. POJ1680 Currency Exchange SPFA判正环

    转载来源:優YoU  http://user.qzone.qq.com/289065406/blog/1299337940 提示:关键在于反向利用Bellman-Ford算法 题目大意 有多种汇币,汇 ...

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

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

最新文章

  1. 编译选项_HarmonyOS编译过程
  2. 分享10个原生JavaScript技巧
  3. centos sqldeveloper 连接mysql,Oracle SQL Developer 连接 Mysql 等数据库
  4. Berkeley DB的数据存储结构——哈希表(Hash Table)、B树(BTree)、队列(Queue)、记录号(Recno)...
  5. VS2010解决方案位置不对和改变程序字体的方案
  6. DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——1~20
  7. P4449-于神之怒加强版【莫比乌斯反演】
  8. css div滚动_如何使用CSS创建可垂直滚动的div?
  9. 62. 不同路径(JavaScript)
  10. 拓端tecdat|stata如何处理结构方程模型(SEM)中具有缺失值的协变量
  11. Android 开发 学习网站
  12. 转:实战 SSH 端口转发
  13. jersey创建restful服务及调用_Jersey实现Restful服务(实例讲解)
  14. 课设错误调试(一)No qualifying bean of type
  15. CSS3-设置基本边框和背景
  16. 光猫及二级路由器Openwrt均开启IPv6,满足双层网络内IPv6的获取
  17. k8s_day03_02
  18. opencv 图像填充
  19. 马蜂窝裁php换java,php又又又凉凉了吗
  20. 全国软考中级软件设计师 学习笔记-法律法规部分

热门文章

  1. 2018年预测:GPU数据库或是未来的数据库统治者!
  2. 居民安装光伏系统常会碰壁 怎么样做才能少走弯路?
  3. 【zabbix系列】报警系统的设置和排除
  4. spring this.logger.isDebugEnabled()
  5. java arraylist用法_Java入门系列:实例讲解ArrayList用法
  6. 用winformz时间格式不正确_巨峰葡萄不能膨大?错!在正确的时间,用对方法,收获优质果穗型...
  7. android真实项目教程(四)——MY APP MY STYLE_by_CJJ
  8. Android animation动画
  9. 浅谈line-height和vertical-align
  10. [Python]输入与输出