hdu 1285

来源:互联网 发布:海岛奇兵菊花升级数据 编辑:程序博客网 时间:2024/04/26 09:35
#include<cstdio>#include<string.h>#define maxn 1000using namespace std;int degree[maxn];int vis[maxn][maxn];int jg[maxn];int n,m;int main(){    int a,b,p;    while(scanf("%d%d",&n,&m)==2)    {        memset(degree,0,sizeof(degree));    memset(vis,0,sizeof(vis));    memset(jg,0,sizeof(jg));    for(int i=0; i<m; i++)    {        scanf("%d%d",&a,&b);        if(!vis[a][b])        {            vis[a][b]=1;            degree[b]++;        }    }    for(int i=1; i<=n; i++)    {        p=-1;        for(int j=1; j<=n; j++)        {            if(!degree[j])            {             degree[j]--;             jg[i]=p=j;             break;            }                  }        for(int j=1;j<=n;j++)        {            if(vis[p][j]==1)            {               degree[j]--;               vis[p][j]=0;            }        }    }    for(int i=1;i<=n;i++)    {        if(i==1)            printf("%d",jg[i]);        else            printf(" %d",jg[i]);    }    printf("\n");    }    return 0;}
该题目特别要注意审题,注意要有很多组的输入。还有就是三个for的钳套要用的好
0 0