拓扑排序的vector
Posted sc-pyt-2021-theworld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拓扑排序的vector相关的知识,希望对你有一定的参考价值。
#include <bits/stdc++.h>
#define inf 1e9
#define lll long long int
using namespace std;
vector <int> q[100];
int n,rudu[100],p,ans[100],k;
bool f[100];
queue <int> qq;
void tuopu(){
while(!qq.empty()){
int x=qq.front();
qq.pop();
f[x]=0;
ans[++p]=x;
// cout<<x<<" "<<q[x].size()<<" ";
for(int i=0;i<q[x].size();i++){
int m=q[x][i];
rudu[m]--;
if(!rudu[m]&&!f[m]) {
qq.push(m);
f[m]=1;
}
}
}
}
int main(){
ios::sync_with_stdio(0);
cin>>n;
for(int i=1;i<=n;i++){
while(1){
cin>>k;
if(!k) break;
else{
q[i].push_back(k);
rudu[k]++;
}
}
}
for(int i=1;i<=n;i++)
if(!rudu[i]) {
qq.push(i);
// f[i]=1;
}
tuopu();
for(int i=1;i<=p;i++){
cout<<ans[i];
}
return 0;
}
本来写了一个超好超详细的博客,突然一卡,全没了///////
不想再写了
注意 p++,和++p;
vector是从0开始遍历的,vector.size()前不能加等号
快哭了
以上是关于拓扑排序的vector的主要内容,如果未能解决你的问题,请参考以下文章