poj 1860 bellman 求正环
#include<stdio.h>
#include<string.h>
#include<queue>//只需判断是否有正环路径就可以了
using namespace std;
#define N 200
struct node {
double r,c;
}map[N][N];
double maxvalue[N],h;
int n,cou[N];
int bellmanford(int start) {
queue<int>q;
int vis[N];
int cur,i,count=0;
memset(vis,0,sizeof(vis));
cou[start]=1;
vis[start]=1;
q.push(start);
while(!q.empty()) {
cur=q.front();
q.pop();
for(i=1;i<=n;i++) {
if(cur==i)
continue;
if(map[cur][i].c<0||map[cur][i].r<0)
continue;
if(maxvalue[i]<(maxvalue[cur]-map[cur][i].c)*map[cur][i].r&&(maxvalue[cur]-map[cur][i].c)*map[cur][i].r>=0) {
maxvalue[i]=(maxvalue[cur]-map[cur][i].c)*map[cur][i].r;
if(!vis[i]) {
vis[i]=1;
q.push(i);
if(++cou[i]>=n)//如果入队达到n次就说明肯定有正环路径
return 1;
}
}
}
vis[cur]=0;
}
return 0;
}
int main() {
int m,i,num,a,b,j;
double ab,abc,ba,bac;
while(scanf("%d%d%d%lf",&n,&m,&num,&h)!=EOF) {
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) {
map[i][j].r=-1;
map[i][j].c=-1;
}
for(i=1;i<=n;i++)
maxvalue[i]=0;
maxvalue[num]=h;
for(i=1;i<=m;i++) {
scanf("%d%d%lf%lf%lf%lf",&a,&b,&ab,&abc,&ba,&bac);
map[a][b].r=ab;
map[a][b].c=abc;
map[b][a].r=ba;
map[b][a].c=bac;
}
if(bellmanford(num))
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
poj 1860 bellman 求正环的更多相关文章
- poj 1860 (Bellman_Ford判断正环)
题意:给出n种货币,m中交换关系,给出两种货币汇率和手续费,求能不能通过货币间的兑换使财富增加. 用Bellman_Ford 求出是否有正环,如果有的话就可以无限水松弛,财富可以无限增加. #incl ...
- POJ - 1860 Bellman-Ford判正环
心累,陕西邀请赛学校不支持,可能要自费了.. 思路:套用Bellman-Ford判断负环的思路,把大于改成小于即可判定是否存在从源点能到达的正环.如果存在正环,那么完全多跑几次正环就可以把钱增加到足够 ...
- Currency Exchange POJ - 1860 spfa判断正环
//spfa 判断正环 #include<iostream> #include<queue> #include<cstring> using namespace s ...
- POJ1860 Currency Exchange —— spfa求正环
题目链接:http://poj.org/problem?id=1860 Currency Exchange Time Limit: 1000MS Memory Limit: 30000K Tota ...
- poj1860 兑换货币(bellman ford判断正环)
传送门:点击打开链接 题目大意:一个城市有n种货币,m个货币交换点,你有v的钱,每个交换点只能交换两种货币,(A换B或者B换A),每一次交换都有独特的汇率和手续费,问你存不存在一种换法使原来的钱更多. ...
- POJ 1860 Currency Exchange (最短路)
Currency Exchange Time Limit : 2000/1000ms (Java/Other) Memory Limit : 60000/30000K (Java/Other) T ...
- 最优比例生成环(dfs判正环或spfa判负环)
http://poj.org/problem?id=3621 Sightseeing Cows Time Limit: 1000MS Memory Limit: 65536K Total Subm ...
- HDU 1317 XYZZY【Bellman_Ford判断正环】
题意:给出n个房间,初始在房间1有100的能量值,每次进入一个房间,能量值可能增加也可能减小,(是点权,不是边权),问能否到达终点的时候能量值还为正 这题自己写的时候wa--wa-- 后来看了题解,还 ...
- poj1860 Currency Exchange(spfa判断正环)
Description Several currency exchange points are working in our city. Let us suppose that each point ...
随机推荐
- JSP-Runoob:Cookie 处理
ylbtech-JSP-Runoob:Cookie 处理 1.返回顶部 1. JSP Cookie 处理 Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息.在servlet技术基础上,JS ...
- windows 多mysql 实例
- 使用centos 5.x 32位系统安装astgo 2014 v7.0教程(含全套安装文件)
版本特色: 全自动安装 安装过程中不用频繁输入yes或回车 自带完整号码归属地数据库 自带触屏版WAP ·首先确定你需要使用astgo 2014 7.0还是7.3: astgo 2014 v 7.0 ...
- 使用php实现二叉搜索树
看到一位大神写的js的搜索树,自己也按照模式写了一个php的二叉搜索树. <?phpclass node{ public $data; public $key; public $left=nul ...
- 题解报告:hdu 1232 畅通工程(并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了 ...
- 手势识别官方教程(7)识别缩放手势用ScaleGestureDetector和SimpleOnScaleGestureListener
1.Use Touch to Perform Scaling As discussed in Detecting Common Gestures, GestureDetector helps you ...
- [转]mysql触发器的作用及语法
转自:http://blog.csdn.net/cloudday/article/details/6905590 触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本 ...
- Echarts 出现不明竖线解决方案
Echarts出现了不明竖线,百思不得其解.去查相应的解决方案也没有找到. 后来自己点来点去,突然感觉像是上一个Echarts遗留的. 然后去Echarts官网看到了 clear()方法,这个方法可以 ...
- 使用XUL开发跨平台桌面应用
先上图: 现在使用html,css,js开发桌面的优势越来越明显了,硬件性能的不断提升,人力成本越发昂贵,用户对界面要求越来越高,全球化下企业间的竞争越发激烈. 桌面软件50%+的工作量都在界面开发这 ...
- android计算屏幕dp
首先我们来了解一些基本元素: px:像素,屏幕上的点. dpi:一英寸长的直线上的像素点的数量,即像素密度.标准值是160dp. /*** 正是因为dpi值其代表的特性,所以android项目的资源文 ...