Very simple bellmanford questions, here more detailed: http://blog.csdn.net/lyy289065406/article/details/6645790
Direct code
#include
#include
#include
#include #include
#include
using namespace std;const int SIZE=11111;const int MAXLEN=1<<30;struct sss{int s,e,v;}ed[SIZE];int N,M,WH;int dis[SIZE];int ednum;bool Bellman(){for(int i=0;i
dis[ed[j].s]+ed[j].v){flag=true;dis[ed[j].e]=dis[ed[j].s]+ed[j].v;}}if(!flag)break;}for(int j=0;j
dis[ed[j].s]+ed[j].v){return true;}}return false;}int main(){#ifndef ONLINE_JUDGEfreopen("G:/1.txt","r",stdin);freopen("G:/2.txt","w",stdout);#endifint f,u,v,w;cin>>f;while(f--){ednum=0;cin>>N>>M>>WH;for(int i=0;i
>u>>v>>w;ed[ednum].s=u;ed[ednum].e=v;ed[ednum++].v=v;ed[ednum].e=u;ed[ednum].s=v;ed[ednum++].v=w;}for(int i=0;i
>u>>v>>w;ed[ednum].s=u;ed[ednum].e=v;ed[ednum++].v=-w;}if(Bellman())printf("YES\n");elseprintf("NO\n");} return 0;}