题目链接 http://poj.org/problem?id=2367
题意就是给定一系列关系,按这些关系拓扑排序。
#include#include #include #include #include using namespace std;const int maxn=200;int ans;int n;int in[maxn]; //记录入度int num[maxn]; //记录答案vector E[maxn]; //记录边void topo_sort() //拓扑排序{ queue q; for(int i=1; i<=n; i++) if(!in[i]) { q.push(i); in[i]=-1; } while(!q.empty()) { int now=q.front(); num[ans]=now; ans++; q.pop(); for(int i=0; i 0) in[E[now][i]]--; for(int i=1; i<=n; i++) if(!in[i]) { in[i]=-1; q.push(i); } } return ;}int main(){ while(~scanf("%d",&n)) { memset(num,0,sizeof(num)); memset(in,0,sizeof(in)); for(int i=0;i