Description编程
Input数组
Outputui
Sample Inputspa
4 3 1 2 2 3 4 3
Sample Outputcode
1 2 4 3
#include<stdio.h> #include<string.h> int map[502][502]; int visit[502];//标记数组 int in[502];顶点入度数组 int main() { int n, m, i, j, x, y; while(~scanf("%d %d", &n, &m)) { memset(map, 0, sizeof(map)); memset(visit, 0, sizeof(visit)); memset(in, 0, sizeof(in)); for(i=1; i<=m; i++) { scanf("%d %d", &x, &y); if(map[x][y] == 0)//当出现重边的时候,可保证度再也不增长 { in[y]++; map[x][y] = 1; } } int leap; leap = n; while(leap) { for(i=1; i<=n; i++)//删点 { if(visit[i]==0 && in[i] == 0) { visit[i] = 1; printf("%d", i); leap--; if(leap!=0) printf(" "); else printf("\n"); break; } } for(j=1; j<=n; j++)//减度(删边) { if(map[i][j]==1) in[j]--; } } } return 0; }