Legal or Not

来源:互联网 发布:福建都是用晨曦软件 编辑:程序博客网 时间:2024/05/19 21:41
拓扑排序基础题 点击打开链接
#include < iostream>#include < cstring >#include <  queue  >#define  N      105using namespace std; int g[N][N], d[ N ];int tsort(int n){int i,j,k;queue<int> que;for(i=0;i<n;i++)if(d[i]==0) que.push(i);while(!que.empty()){k=que.front();que.pop();for(j=0;j<n;j++){if(g[k][j]){d[j]-=1 , g[k][j]=0;if(d[j]==0) que.push(j);}}}for(i=0;i<n;i++)if(d[i]>0) return 0;return 1;}int main (){//freopen("ts.txt","r",stdin);int n,m,i,x,y;while(cin>>n>>m,n||m){memset(g,0,sizeof(g));memset(d,0,sizeof(d));for(i=0;i<m;i++){cin>>x>>y;if(g[x][y]) continue;g[x][y]=1,d[y]++;}if(tsort(n)) cout<<"YES"<<endl;else         cout<<"NO" <<endl;}return 0;}


原创粉丝点击