HDOJ 1285 确定比赛排名(拓扑排序)

来源:互联网 发布:自动排料软件 编辑:程序博客网 时间:2024/05/18 02:40

非递归式,适用于有向无环图。

#include <iostream>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int maxn = 505;int MAP[maxn][maxn], in[maxn];int n, m;int main(){while(~scanf("%d%d", &n, &m)){memset(MAP, 0, sizeof(MAP));memset(in, 0, sizeof(in));int a, b;for(int i = 0; i < m; i++){scanf("%d%d", &a, &b);if(!MAP[a][b]) //避免重复边{MAP[a][b] = 1;in[b]++;}}int id;for(int i = 1; i <= n; i++){for(id = 1; in[id]; id++ );//避免再次统计id点,把入度改为-1in[id] = -1;for(int j = 1; j <= n; j++){if(MAP[id][j] == 1)in[j]--;}if(i > 1)printf(" ");printf("%d", id);}printf("\n");}return 0;}


0 0
原创粉丝点击