Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Cycle Detection for a Directed Graph"
https://onlinejudge.u-aizu.ac.jp/problems/GRL_4_A
・有向グラフの閉路検査
僕が作成、提出したコードは、以下のとおりです。
Aizu Online Judge in C++ #GRL_4_A : Cycle Detection for a Directed Graph
/* Aizu Online Judge in C++ #GRL_4_A : Cycle Detection for a Directed Graph https://onlinejudge.u-aizu.ac.jp/problems/GRL_4_A 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; const int inf=0x3f3f3f3f; struct st{ int from,to,c; }; vector<st> vec; int d[1000]; int main(void){ int v,e; cin>>v>>e; for(int i=0;i<e;i++){ int s,t; cin>>s>>t; vec.push_back({s,t,-1}); } for(int i=0;i<v;i++){ for(int j=0;j<e;j++){ st s=vec[j]; if(d[s.from]!=inf && d[s.to]>d[s.from]+s.c){ d[s.to]=d[s.from]+s.c; if(i==v-1){ cout<<1<<endl; return 0; } } } } cout<<0<<endl; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/