1. 程式人生 > >poj2367——拓撲排序

poj2367——拓撲排序

如果懂拓撲排序的話,這題挺水的。
想了解拓撲排序點選:拓撲排序傳送
貼程式碼:


//Memory 184k  Time 0ms

#include<iostream>
#include<vector>
#include<queue>
using namespace std;
int main()
{
	int n;
	int num;
	int count;
	vector<vector<int>> adj(105);
	int indegree[105];
	memset(indegree,0,sizeof(indegree)
); cin>>n; for(int i=1;i<=n;i++) { while(cin>>num && num!=0) { adj[i].push_back(num); indegree[num]++; } } queue<int> aqueue; for(int i=1;i<=n;i++) { if(indegree[i]==0) aqueue.push(i); } while(!aqueue.empty()) { count=aqueue.front(); cout<<
count<<" "; aqueue.pop(); vector<int>::iterator ii=adj[count].begin(); for( ; ii!=adj[count].end();ii++) { indegree[*ii]--; if(indegree[*ii]==0) { aqueue.push(*ii); } } } return 0; }