hdu-1285

来源:互联网 发布:centos安装输入法 编辑:程序博客网 时间:2024/05/05 17:20

拓扑排序:

#include<stdio.h>#include<iostream>#include<string.h>#include<math.h>#include<stdlib.h>#include<ctype.h>#include<algorithm>#include<vector>#include<string>#include<queue>#include<stack>#include<set>using namespace std;int n,m,r[600],a[600][600],ans[600];void toposort(){    for(int i=1;i<=n;i++)    {        int k=1;        while(r[k]!=0 )            k++;        ans[i]=k;        r[k]=-1;        for(int j=1;j<=n;j++)        {            if(a[k][j])                r[j]--;        }    }}int main(){    int x,y;         while(scanf("%d%d", &n, &m)!=EOF )    {        memset(a,0,sizeof(a));        memset(r,0,sizeof(r));        for(int i=1; i<=m; i++)        {            scanf("%d %d",&x,&y);            if(a[x][y]==0)            {                a[x][y]=1;            }        }        for(int i=1;i<=n;i++)            for(int j=1;j<=n;j++)        {            if(a[i][j]!=0)                r[j]++;        }        toposort();        for(int i=1; i<=n; i++)        {            if(i != n)                 printf("%d ", ans[i]);            else                 printf("%d\n", ans[i]);        }    }    return 0;}


0 0
原创粉丝点击