poj3259
来源:互联网 发布:对网络语言的看法ppt 编辑:程序博客网 时间:2024/06/06 05:37
一段时间没编程了,手感很生硬,一道bellon-ford的模板题,关键容易出错的是还要反向保存一次,bellon-ford的思想就是先放缩,然后发现还可以放缩说明含有负权回路。
#include <stdio.h>int s[10005],e[10005],v[10005],dis[10005];//第i条道路的起点,终点和权值 int main() { int i,j,k,n,m,w,flag,T; scanf("%d",&T); while(T--) { scanf("%d%d%d",&n,&m,&w); for (i=1;i<=m;i++) scanf("%d%d%d",&s[i],&e[i],&v[i]); for (i=m+1;i<=2*m;i++) { s[i]=e[i-m]; e[i]=s[i-m]; v[i]=v[i-m]; }//无相图需要反向保存一次 for (i=2*m+1;i<=2*m+w;i++) { scanf("%d%d%d",&s[i],&e[i],&v[i]); v[i]=-v[i]; } for (i=2;i<=n;i++) dis[i]=1000000; dis[1]=0; for (i=1;i<=n-1;i++) { for (j=1;j<=2*m+w;j++) { if (dis[e[j]]>dis[s[j]]+v[j]) dis[e[j]]=dis[s[j]]+v[j]; } } flag=0; for (j=1;j<=2*m+w;j++) { if (dis[e[j]]>dis[s[j]]+v[j]) flag=1; } if (flag==1)//含有负权回路 printf("YES\n"); else printf("NO\n"); } return 0; }
0 0
- poj3259
- POJ3259
- poj3259
- poj3259
- poj3259
- poj3259
- poj3259
- poj3259
- poj3259
- POJ3259
- POJ3259
- poj3259
- POJ3259
- poj3259
- poj3259
- poj3259
- POJ3259
- POJ3259
- Insert a node in a sorted linked list.
- BZOJ-2324 营救皮卡丘 最小费用可行流+拆下界+Floyd预处理
- jpa2
- 【POJ】1456 - Supermarket(并查集,好题)
- 修改字符串 两种方法,对形参传过来的
- poj3259
- 智能机器人——基于Html5和css3的聊天器界面设计与实现
- 从物理执行的角度透视Spark Job
- CSS块级元素、内联元素
- iOS UIAlertController 弹出框控制器
- 【Android常见问题】关于内存泄漏(二)
- 奇特的js语法
- hdu 2153 仙人球的残影
- 聊天服务器代码(群聊、信息推送)