POJ3259 Bellman-Ford算法 求负环
2015-05-25 10:07
274 查看
暴力bf...1954ms 差6ms卡过.
#include<cstdio>
#include<cstring>
#define INF 0x3f3f3f3f
int n;
int G[1000][1000];
bool bf()
{
int res[n+1];
memset(res,0x3f,sizeof(res));
res[1]=0;
for(int k=1;k<=n-1;k++)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(res[j]>res[i]+G[i][j])
res[j]=res[i]+G[i][j];
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
//printf("%d %d %d %d\n",res[j],res[i],G[i][j],res[i]+G[i][j]);
if(res[j]>res[i]+G[i][j])
return true;
}
}
return false;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(G,0x3f,sizeof(G));
int m,w;
scanf("%d%d%d",&n,&m,&w);
for(int i=1;i<=n;i++) G[i][i]=0;
int from,to,val;
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&from,&to,&val);
if(G[from][to]>val)
G[from][to]=G[to][from]=val;
}
for(int i=1;i<=w;i++)
{
scanf("%d%d%d",&from,&to,&val);
G[from][to]=-val;
}
if(bf()) printf("YES\n");
else printf("NO\n");
}
return 0;
}
Close
#include<cstdio>
#include<cstring>
#define INF 0x3f3f3f3f
int n;
int G[1000][1000];
bool bf()
{
int res[n+1];
memset(res,0x3f,sizeof(res));
res[1]=0;
for(int k=1;k<=n-1;k++)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(res[j]>res[i]+G[i][j])
res[j]=res[i]+G[i][j];
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
//printf("%d %d %d %d\n",res[j],res[i],G[i][j],res[i]+G[i][j]);
if(res[j]>res[i]+G[i][j])
return true;
}
}
return false;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(G,0x3f,sizeof(G));
int m,w;
scanf("%d%d%d",&n,&m,&w);
for(int i=1;i<=n;i++) G[i][i]=0;
int from,to,val;
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&from,&to,&val);
if(G[from][to]>val)
G[from][to]=G[to][from]=val;
}
for(int i=1;i<=w;i++)
{
scanf("%d%d%d",&from,&to,&val);
G[from][to]=-val;
}
if(bf()) printf("YES\n");
else printf("NO\n");
}
return 0;
}
Close
相关文章推荐
- poj 3259 最短路判负环 spfa算法和Bellman_ford算法
- POJ3259-JAVA语言描述-Bellman_Ford算法
- poj3259 Wormholes (Bellman-Ford算法)
- 基于bellman-ford算法与spfa算法判断负环
- poj3259 Bellman_ford算法
- uva 558 Wormholes (Bellman-Ford算法判断负环)
- POJ3259 农场与虫洞 图论(Bellman-Ford求负环)
- POJ3259--Wormholes--Bellman-Ford算法经典题
- POJ3259—Bellman-Ford算法实现
- bellman-ford算法(判断是否存在负环)
- 10557 - XYZZY(****)---Bellman-Ford算法
- hdu 三部曲1 Is the Information Reliable? 差分约束 bellman_ford算法
- Bellman-ford算法的学习http://blog.csdn.net/niushuai666/article/details/6791765
- 带负权图的单源最短路径算法:Bellman-Ford算法
- Contest20140710 loop bellman-ford求负环&&0/1分数规划
- Bellman-Ford算法
- Bellman-ford算法
- POJ3259 Wormholes SPFA 或者 bellman_ford
- 求解单源最短路问题:Bellman-Ford算法(可判负权回路)详解 之 poj 3268 Silver Cow Party
- uva11090Going in Cycle!!【bellman二分判负环】