結果
問題 | No.1023 Cyclic Tour |
ユーザー |
![]() |
提出日時 | 2020-11-13 10:22:31 |
言語 | cLay (20241019-1) |
結果 |
AC
|
実行時間 | 45 ms / 2,000 ms |
コード長 | 688 bytes |
コンパイル時間 | 5,652 ms |
コンパイル使用メモリ | 213,816 KB |
実行使用メモリ | 15,104 KB |
最終ジャッジ日時 | 2024-07-05 14:44:40 |
合計ジャッジ時間 | 12,056 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 49 |
ソースコード
graph g; #define MAXN 100001 int gr[MAXN]; char vis[MAXN]; void f1(int i,int p,int r){ if(gr[i]){ wt("Yes"); exit(0); } gr[i]=r; rep[g.edge[i]](j,g.es[i]){ if(j!=p){ f1(j,i,r); } } } void f2(int i){ if(vis[i]){ if(vis[i]==1){ wt("Yes"); exit(0); } }else{ vis[i]=1; rep[g.edge[i]](j,g.es[i]){ f2(j); } vis[i]=2; } } int a[2d5],b[2d5],c[2d5]; { int @n,@m; rd((a,b,c)(m)); sortA(m,c,a,b); int h=2m-sum(c(m)); g.setEdge(n+1,h,a,b); int r=1; for(int i=1;i<=n;++i){ if(!gr[i]){ f1(i,0,r++); } } for(int j=h;j<m;++j){ a[j]=gr[a[j]]; b[j]=gr[b[j]]; } g.setDirectEdge(r,m-h,a+h,b+h); for(int i=0;i<r;++i){ f2(i); } wt("No"); }