hdu 1285

 1 //最基础的top排序
 2 #include<stdio.h>
 3 #include<string.h>
 4 #include<algorithm>
 5 using namespace std;
 6 #define xx 505
 7 int g[xx][xx],indegree[xx];
 8 int n,m;
 9 void topsort()
10 {
11     int i,j,k;
12     for(i=1;i<=n;i++)
13     {
14         for(j=1;j<=n;j++)
15         {
16             if(indegree[j]==0)
17             {
18                 indegree[j]--;
19                 if(i!=n)
20                     printf("%d ",j);
21                 else
22                     printf("%d\n",j);
23                 for(k=1;k<=n;k++)
24                 {
25                     if(g[j][k])
26                         indegree[k]--;
27                 }
28                 break;
29             }
30         }
31     }
32 }
33 int main()
34 {
35     int i,a,b;
36     while(scanf("%d%d",&n,&m)!=EOF)
37     {
38         memset(g,0,sizeof(g));
39         memset(indegree,0,sizeof(indegree));
40         for(i=1;i<=m;i++)
41         {
42             scanf("%d%d",&a,&b);
43             if(!g[a][b])
44             {
45                 g[a][b]=1;
46                 indegree[b]++;
47             }
48         }
49         topsort();
50     }
51     return 0;
52 }

 

转载于:https://www.cnblogs.com/M-cag/archive/2012/08/09/2629735.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值