hdu 3342 Legal or Not

来源:互联网 发布:淘宝宝贝描述代码制作 编辑:程序博客网 时间:2024/04/28 14:55

拓扑排序水题

有重边,在读数据的同时计算入度时要注意去重

 

 

 

 

#include<stdio.h>#include<stack>using namespace std;int n,map[105][105],link[105];int tuopusort(){    int j,i;       for(i=0;i<n;i++)        for(j=0;j<n;j++)            if(map[i][j]==1)                link[j]++;    stack<int>Q;    for(i=0;i<n;i++)    if(link[i]==0)        Q.push(i);    j=0;    while(!Q.empty())    {        int u=Q.top();        Q.pop();        j++;        for(i=0;i<n;i++)        {            if(map[u][i]==1)            {                    link[i]--;                if(link[i]==0)                    Q.push(i);             }        }    }    if(j==n)return 1;    else return 0;}int main(){    int j,i,a,b,m;    while(scanf("%d%d",&n,&m),n&&m)    {        memset(map,0,sizeof(map));        memset(link,0,sizeof(link));        for(i=0;i<m;i++)        {            scanf("%d%d",&a,&b);                map[a][b]=1;        }        j=tuopusort();        if(j==0)printf("NO\n");        else printf("YES\n");    }    return 0;}