标签:
拓扑排序,不开心持续中
#include<iostream> #include<queue> #include<cstring> #include<vector> #define maxn 2100 using namespace std; vector<vector<int> >mapp; int head[maxn]; int n; void solve() { queue<int>root; for(int i=0;i<n;i++) { if(!head[i]) root.push(i); } int re=0; while(root.size()) { int x=root.front(); root.pop(); re++; head[x]--; for(int i=0;i<mapp[x].size();i++) { head[mapp[x][i]]--; if(!head[mapp[x][i]]) root.push(mapp[x][i]); } } if(re==n) cout<<"No"<<endl; else cout<<"Yes"<<endl; } int main() { cin.sync_with_stdio(false); int t; cin>>t; int ca=1; while(t--) { for(int i=0;i<n;i++) head[i]=0; cin>>n; string str; mapp.resize(n); for(int i=0;i<n;i++) { cin>>str; for(int j=0;j<str.size();j++) { if(str[j]=='1') mapp[i].push_back(j),head[j]++; } } cout<<"Case #"<<ca<<": "; ca++; solve(); } return 0; }
标签:
原文地址:http://blog.csdn.net/zafkiel_nightmare/article/details/45016835