POJ 1860 Currency Exchange(SPFA+邻接矩阵)
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<vector>
#include<queue>
using namespace std; const int eps=1e-7;
const int MAXN=110;
int N,M,S;
double V,Vcur[MAXN],R[MAXN][MAXN],C[MAXN][MAXN];
bool vis[MAXN];
int cntNode[MAXN]; bool SPFA()
{
queue<int> que;
int u,v; for(int i=1;i<=N;i++)
Vcur[i]=0,vis[i]=0,cntNode[i]=0;
Vcur[S]=V;vis[S]=1;cntNode[S]=1;
que.push(S); while(!que.empty())
{
u=que.front();que.pop();
vis[u]=0; for(v=1;v<=N;v++)
{
if((Vcur[u]-C[u][v])*R[u][v]>Vcur[v]+eps)
{
Vcur[v]=(Vcur[u]-C[u][v])*R[u][v];
if(!vis[v])
{
vis[v]=1;
++cntNode[v];
que.push(v);
if(cntNode[v]>N)
return true;
}
}
}
}
return false;
} int main()
{
scanf("%d%d%d%lf",&N,&M,&S,&V);
int a,b;
double r,c,rr,cc;
while(M--)
{
scanf("%d%d%lf%lf%lf%lf",&a,&b,&r,&c,&rr,&cc);
R[a][b]=r;C[a][b]=c;
R[b][a]=rr;C[b][a]=cc;
}
if(!SPFA()) printf("NO\n");
else printf("YES\n");
return 0;
}
POJ 1860 Currency Exchange(SPFA+邻接矩阵)的更多相关文章
- POJ 1860 Currency Exchange (SPFA松弛)
题目链接:http://poj.org/problem?id=1860 题意是给你n种货币,下面m种交换的方式,拥有第s种货币V元.问你最后经过任意转换可不可能有升值.下面给你货币u和货币v,r1是u ...
- POJ 1860 Currency Exchange / ZOJ 1544 Currency Exchange (最短路径相关,spfa求环)
POJ 1860 Currency Exchange / ZOJ 1544 Currency Exchange (最短路径相关,spfa求环) Description Several currency ...
- 最短路(Bellman_Ford) POJ 1860 Currency Exchange
题目传送门 /* 最短路(Bellman_Ford):求负环的思路,但是反过来用,即找正环 详细解释:http://blog.csdn.net/lyy289065406/article/details ...
- POJ 1860 Currency Exchange 最短路+负环
原题链接:http://poj.org/problem?id=1860 Currency Exchange Time Limit: 1000MS Memory Limit: 30000K Tota ...
- POJ 1860 Currency Exchange + 2240 Arbitrage + 3259 Wormholes 解题报告
三道题都是考察最短路算法的判环.其中1860和2240判断正环,3259判断负环. 难度都不大,可以使用Bellman-ford算法,或者SPFA算法.也有用弗洛伊德算法的,笔者还不会SF-_-…… ...
- POJ 1860——Currency Exchange——————【最短路、SPFA判正环】
Currency Exchange Time Limit:1000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I64u S ...
- 图论 --- spfa + 链式向前星 : 判断是否存在正权回路 poj 1860 : Currency Exchange
Currency Exchange Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 19881 Accepted: 711 ...
- (简单) POJ 1860 Currency Exchange,SPFA判圈。
Description Several currency exchange points are working in our city. Let us suppose that each point ...
- poj 1860 Currency Exchange (SPFA、正权回路 bellman-ford)
链接:poj 1860 题意:给定n中货币.以及它们之间的税率.A货币转化为B货币的公式为 B=(V-Cab)*Rab,当中V为A的货币量, 求货币S通过若干此转换,再转换为原本的货币时是否会添加 分 ...
- POJ 1860 Currency Exchange【SPFA判环】
Several currency exchange points are working in our city. Let us suppose that each point specializes ...
随机推荐
- 怎样通过WireShark抓到的包分析出SIP流程图
WireShark抓到了SIP包, 逐条分析, 看瞎...希望能够写个脚本, 自动生成流程图
- NGINX----源码阅读----init配置脚本
/auto/init init脚本负责初始化各种目录环境变量值. 1.make文件.源文件.头文件.配置头文件路径变量初始化. NGX_MAKEFILE=$NGX_OBJS/Makefile NGX_ ...
- 浅谈javascript中stopImmediatePropagation函数和stopPropagation函数的区别
在事件处理程序中,每个事件处理程序中间都会有一个event对象,而这个event对象有两个方法,一个是stopPropagation方法,一个是stopImmediatePropagation方法,两 ...
- syntaxhighlighter的使用
第一 解压压缩包,scripts文件夹中包含了各种语言的JS文件,在styles文件夹中是各种显示高亮的主题 第二 如何使用?首先要引入其核心javascript文件shCore.js和核心CSS文件 ...
- Redis 数据序列化方法 serialize, msgpack, json, hprose 比较
最近弄 Redis ,涉及数据序列化存储的问题,对比了:JSON, Serialize, Msgpack, Hprose 四种方式 1. 对序列化后的字符串长度对比: 测试代码: $arr = [0, ...
- 用 monitorix 开启linux图形化监控
# yum install monitorix # service monitorix starthttp://host:8080/monitorix/
- Chapter 17_1 弱引用table
Lua采用了自动内存管理.所以不用担心新创建的对象需要的内存如何分配出来,也不用考虑对象不再被使用后怎样释放它们所占用的内存. Lua实现了一个增量标记-扫描收集器.它使用这两个数字来控制垃圾收集循环 ...
- C#代码篇:代码产生一个csv文件调用有两个核心的坑
忙活了半天终于可以开工了,a物品到底要不要放进去取决于两个因素,第一是a有4kg重,只有背包大于等于4kg的时候才能装进去(也就是说当i=1,k<4时f[i,k]=0):第二是当背包的重量大于等 ...
- JAVA内容回顾(一)——基本语法
一.基本数据类型 1.标识符. 标识符由字母.数字.下划线和美元符组成. 标识符不能是JAVA的关键字与保留字,但是可以包含其内. 标识符区分大小写.标识符长度没有限制.标识符不能含有空格. 2.注释 ...
- OAuth2.0 工作流程
重要术语 Authorization Server:授权服务器,能够成功验证资源拥有者和获取授权,并在此之后分发令牌的服务器: Resource Server:资源服务器,存储用户的数据资源,能够 ...