拓扑排序 POJ 2367
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拓扑排序 POJ 2367相关的知识,希望对你有一定的参考价值。
今天网易的笔试,妹的,算法题没能A掉,虽然按照思路写了出来,但是尼玛好歹给个测试用例的格式呀,吐槽一下网易的笔试出的太烂了。
就一道算法题,比较石子重量,个人以为解法应该是拓扑排序。
就去POJ找了道拓扑排序的题:POJ2367
直接上代码吧:
#include<stdio.h> #include<string> #define clr(x) memset(x,0,sizeof(x)) int g[101][102]; int indegree[102]; int res[102]; using namespace std; int main() { int n,p,top; while(scanf("%d",&n)!=EOF) { clr(g); clr(indegree); for(int i=1;i<=n;i++) { while(scanf("%d",&p),p) { g[i][p] = 1; indegree[p]++; } } top = 0; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(indegree[j] == 0) { res[top++] = j; indegree[j] = -1; for(int k=1;k<=n;k++) if(g[j][k]==1) indegree[k] -- ; break; } } } for(int i=0;i<top;i++) { printf("%d%c",res[i],i==top-1?‘\n‘:‘ ‘); } } return 0; }
以上是关于拓扑排序 POJ 2367的主要内容,如果未能解决你的问题,请参考以下文章
POJ 2367 Genealogical tree (拓扑排序基础题)
POJ 2367:Genealogical tree(拓扑排序)
图论之拓扑排序 poj 2367 Genealogical tree