拓扑排序 HDU 1285 确定比赛名次
2015-03-19 20:40
435 查看
在图中找打入度为0的节点。
删除这个入度为0的点,更新所有节点的入度。
重复1/2步骤。直到输出所有节点。
删除这个入度为0的点,更新所有节点的入度。
重复1/2步骤。直到输出所有节点。
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int map[510][510];//存图 int in_dege[510];//入度个数 int m, n; void topo_sort() { int i, j; memset(in_dege, 0, sizeof(in_dege)); for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { in_dege[i] += map[j][i]; } } for (i = 1; i <= n; i++) { for (j = 1; in_dege[j] && j <= n; j++); in_dege[j] = -1; for (int k = 1; k <= n; k++) { in_dege[k] -= map[j][k]; } if (i == 1) { printf("%d", j); } else { printf(" %d", j); } } printf("\n"); } int main() { while (scanf("%d%d", &n, &m) != EOF) { memset(map, 0, sizeof(map)); for (int i = 1; i <= m; i++) { int a, b; scanf("%d%d", &a, &b); map[a][b] = 1; } topo_sort(); } return 0; }
相关文章推荐
- hdu 1285 确定比赛名次(拓扑排序)
- 拓扑排序模版--hdu 1285 确定比赛名次
- HDU 1285 拓扑排序-- 确定比赛名次
- HDU 1285 确定比赛名次 拓扑排序
- hdu_1285 确定比赛名次 (拓扑排序)
- HDU-1285-确定比赛名次-拓扑排序(模板)
- hdu 1285 确定比赛名次 拓扑排序 解题报告
- HDU 1285 确定比赛名次【拓扑排序】
- HDU 1285 确定比赛名次(拓扑排序)
- 拓扑排序学习小记 HDU 1285 确定比赛名次 + HDU 2647 Reward
- 【拓扑排序】HDU 1285——确定比赛名次
- 拓扑排序(Topological Order 基础篇)—— 确定比赛名次 (HDU 1285 )
- 确定比赛名次(hdu-1285)(拓扑排序队列实现)
- hdu 1285 确定比赛名次(拓扑排序)
- HDU 1285 确定比赛名次(拓扑排序基础)
- HDU 1285 确定比赛名次(拓扑排序)
- hdu 1285 确定比赛名次(拓扑排序)
- HDU 1285 确定比赛名次 (预处理+拓扑排序)
- 确定比赛名次,hdu 1285 最简单的拓扑排序,
- hdu 1285 确定比赛名次(拓扑排序)