hdu 1317 floyd+bellman-Ford
2014-09-06 18:22
363 查看
题的意思是 判断是否存在一条从1到n的路径,且最终的cost值为正值,初始值为100。中间各个room的值有正有负。
但在求路径的时候,任何一点的value都不能小于或者等于零,否则这条路就不能通。当然,如果有正环,并且可以
从1到n是连通的,那么就一定winnable。
用floyd判断是否连通性,bellman-Ford判断有无正环
但在求路径的时候,任何一点的value都不能小于或者等于零,否则这条路就不能通。当然,如果有正环,并且可以
从1到n是连通的,那么就一定winnable。
用floyd判断是否连通性,bellman-Ford判断有无正环
#include<cstdio> #include<cstring> #include<iostream> using namespace std; #define N 111int link ; int value ,dist ; int g ; int main() { int n; while(cin>>n&&n!=-1) { int i,j,k; int a,b; memset(link,0,sizeof(link)); memset(g,0,sizeof(g)); memset(dist,-1,sizeof(dist)); memset(value,0,sizeof(value)); for(i=1;i<=n;i++) { scanf("%d%d",&value[i],&a); while(a--) { scanf("%d",&b); g[i][b]=1; link[i][b]=1; } } for(k=1;k<=n;k++) for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(link[i][k]&&link[k][j]) link[i][j]=1; link =1; if(link[1] ==0) { printf("hopeless\n"); continue; } dist[1]=100; for(k=1;k<=n;k++) { int flag=1; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(g[i][j]&&link[i] &&dist[i]>0&&dist[j]<dist[i]+value[j]) { dist[j]=dist[i]+value[j]; flag=0; } } } if(flag==1) break;//不再进行松弛操作 } if(k>n||dist >=0)/即第n次也能进行松弛操作,说明有环,有正环或者有正通路 printf("winnable\n"); else printf("hopeless\n"); } return 0; }
相关文章推荐
- Hdu 1317 XYZZY[floyd+bellman_ford]
- hdu 1317 Bellman-Ford
- HDU 1874 畅通工程续 (Dijkstra , Floyd , SPFA, Bellman_Ford 四种算法)
- HDU 2544 最短路【dijkstra+floyd+spfa+bellman-ford】
- hdu 1317 XYZZY(bellman_ford判断环,有负权)
- HDU 2544(Floyd、Dijkstra、Bellman-Ford、SPFA)
- HDU 1317 Bellman-Ford
- hdoj1317-XYZZY(floyd + bellman_ford)
- Floyd Dijkstra Bellman-Ford spfa 四种最短路经典算法汇总 HDU 2544为例
- HDU 1317 XYZZY(floyd+bellman_ford判环)
- dijkstra,bellman-ford,floyd,HDU—1874 畅通工程续
- hdu1874 畅通工程续(Dijkstra/Floyd/Bellman-Ford/SPFA)
- 【最短路径-Floyd/Bellman_Ford】hdu 1217 Arbitrage
- HDU-#2544 最短路(Dijkstra、Floyd、Bellman-Ford、SPFA)
- hdu 1217 Arbitrage 两种算法AC代码,Floyd+Bellman-Ford 大水题一枚 注意是有向图~~
- HDU 1874 畅通工程续 (Floyd, Dijkstra,Bellman-Ford,SPFA)
- HDU 1317 XYZZ(Floyd(传递闭包)+bellmanfd(判断正权环))
- HDU 2544 最短路(四种写法:Floyd、Dijkstra、Bellman-Ford、SPFA)
- hdu-1317-XYZZY-Bellman-Ford判环、Floyd算法
- HDU 1317 XYZZY【Bellman_Ford判断正环】