URAL 1022 Genealogical Tree
2012-05-02 13:24
453 查看
URAL_1022
拓扑排序。
拓扑排序。
#include<stdio.h> #include<string.h> #define MAXD 110 #define MAXM 10010 int N, cnt, e, first[MAXD], next[MAXM], v[MAXM], topo[MAXD], vis[MAXD]; void add(int x, int y) { v[e] = y; next[e] = first[x], first[x] = e ++; } void init() { int i, j, k; memset(first, -1, sizeof(first)); e = 0; for(i = 1; i <= N; i ++) for(;;) { scanf("%d", &k); if(k == 0) break; add(i, k); } } void dfs(int cur) { int i; vis[cur] = 1; for(i = first[cur]; i != -1; i = next[i]) if(!vis[v[i]]) dfs(v[i]); topo[-- cnt] = cur; } void solve() { int i, j, k; cnt = N; for(i = 1; i <= N; i ++) if(!vis[i]) dfs(i); printf("%d", topo[0]); for(i = 1; i < N; i ++) printf(" %d", topo[i]); printf("\n"); } int main() { while(scanf("%d", &N) == 1) { init(); solve(); } return 0; }
相关文章推荐
- URAL 1022 拓扑排序
- ural 1022. Genealogical Tree 拓扑排序
- URAL 1022 Genealogical Tree (DFS)
- ural 1022. Genealogical Tree 拓扑排序
- ural 1022. Genealogical Tree Topological sort
- URAL 1022 Genealogical Tree (拓扑排序)
- Ural1022-Genealogical Tree
- 【基础拓扑排序】poj 2376/ural 1022
- URAL 1022 Genealogical Tree
- URAL 1022. Genealogical Tree
- ural 1022 Genealogical Tree
- ural 1022 Genealogical Tree
- 面相对象的topSort和递推【ural1022/ural1017】
- URAL - 1022 - Genealogical Tree(拓扑排序)
- [Ural1022]Genealogical Tree
- Ural 1022 拓扑排序
- ural 1022. Genealogical Tree
- URAL1022(拓扑排序)
- URAL 1022. Genealogical tree
- Ural 1022 Genealogical Tree