简约网站欣赏,求助如何做网站推广,搭建网站上传文件,深圳做网站公司哪家好洛谷负环板子题 差点没笑死我 之前的题解都在清一色diss bfs#xff0c;吹爆dfs 如今改了数据bfs又崛起了#xff0c;dfs回家种地了#xff0c;哈哈哈哈哈 dfs版 1 // luogu-judger-enable-o22 #includeiostream3 #includecstdio4 #includequeue5 #… 洛谷负环板子题 差点没笑死我 之前的题解都在清一色diss bfs吹爆dfs 如今改了数据bfs又崛起了dfs回家种地了哈哈哈哈哈 dfs版 1 // luogu-judger-enable-o22 #includeiostream3 #includecstdio4 #includequeue5 #includealgorithm6 #includecmath7 #includectime8 #includeset9 #includemap10 #includestack11 #includecstring12 #define inf 214748364713 #define For(i,a,b) for(register long long ia;ib;i)14 #define p(a) putchar(a)15 #define g() getchar()16 17 using namespace std;18 long long T;19 long long x,y,v;20 long long n,m;21 bool flag;22 bool vis[2010];23 long long d[2010];24 struct node25 {26 long long n;27 long long v;28 node *next;29 }*e[400010];30 void in(long long x)31 {32 long long y1;33 char cg();x0;34 while(c0||c9)35 {36 if(c-)37 y-1;38 cg();39 }40 while(c9c0)x(x1)(x3)c-0,cg();41 x*y;42 }43 void o(long long x)44 {45 if(x0)46 {47 p(-);48 x-x;49 }50 if(x9)o(x/10);51 p(x%100);52 }53 54 inline void push(long long x,long long y,long long v)55 {56 node *p;57 pnew node();58 p-ny;59 p-vv;60 if(e[x]NULL)61 e[x]p;62 else63 {64 p-nexte[x]-next;65 e[x]-nextp;66 }67 }68 69 inline void spfa(long long x)70 {71 if(flag)return;72 if(vis[x]){73 flagtrue;74 return;75 }76 77 vis[x]true;78 for(register node *ie[x] ;i; ii-next)79 {80 if(flag)81 return;82 83 if(d[i-n]d[x]i-v){84 85 d[i-n]d[x]i-v;86 spfa(i-n);87 88 } 89 }90 91 vis[x]false;92 }93 94 int main()95 {96 in(T);97 while(T--)98 {99 in(n),in(m);
100
101 For(i,1,n)
102 e[i]NULL,vis[i]false,d[i]inf;
103 flagfalse;
104
105 For(i,1,m){
106 in(x),in(y),in(v);
107 push(x,y,v);
108 if(v0)
109 push(y,x,v);
110 }
111
112 d[1]0;
113 spfa(1);
114
115 if(flag)
116 puts(YE5);
117 else
118 puts(N0);
119 }
120 return 0;
121 } View Code bfs版 1 // luogu-judger-enable-o22 #includeiostream3 #includecstdio4 #includequeue5 #includealgorithm6 #includecmath7 #includectime8 #includeset9 #includemap10 #includestack11 #includecstring12 #define inf 214748364713 #define For(i,a,b) for(register long long ia;ib;i)14 #define p(a) putchar(a)15 #define g() getchar()16 17 using namespace std;18 long long T;19 long long x,y,v;20 long long n,m;21 bool flag;22 bool vis[2010];23 long long d[2010];24 int num[2010];25 26 struct node27 {28 long long n;29 long long v;30 node *next;31 }*e[400010];32 queueintq;33 34 void in(long long x)35 {36 long long y1;37 char cg();x0;38 while(c0||c9)39 {40 if(c-)41 y-1;42 cg();43 }44 while(c9c0)x(x1)(x3)c-0,cg();45 x*y;46 }47 void o(long long x)48 {49 if(x0)50 {51 p(-);52 x-x;53 }54 if(x9)o(x/10);55 p(x%100);56 }57 58 inline void push(long long x,long long y,long long v)59 {60 node *p;61 pnew node();62 p-ny;63 p-vv;64 if(e[x]NULL)65 e[x]p;66 else67 {68 p-nexte[x]-next;69 e[x]-nextp;70 }71 }72 73 inline void spfa(long long x){74 q.push(x);75 vis[x]true;76 num[1];77 while(!q.empty()){78 int tq.front();q.pop();79 vis[t]true;80 for(node *ie[t];i;ii-next){81 82 if(d[i-n]d[t]i-v){83 d[i-n]d[t]i-v;84 num[i-n];85 if(num[i-n]n){86 flagtrue;87 return;88 }89 if(!vis[i-n]){90 q.push(i-n);91 vis[i-n]true;92 93 }94 }95 96 }97 vis[t]false;98 }99 }
100
101 int main()
102 {
103 in(T);
104 while(T--)
105 {
106 in(n),in(m);
107
108 For(i,1,n)
109 e[i]NULL,vis[i]false,d[i]inf,num[i]0;
110 while(!q.empty())
111 q.pop();
112 flagfalse;
113
114 For(i,1,m){
115 in(x),in(y),in(v);
116 push(x,y,v);
117 if(v0)
118 push(y,x,v);
119 }
120
121 d[1]0;
122 spfa(1);
123
124 if(flag)
125 puts(YE5);
126 else
127 puts(N0);
128 }
129 return 0;
130 } View Code 转载于:https://www.cnblogs.com/war1111/p/10368966.html