文章
24
粉丝
0
获赞
170
访问
3.6k
#include<bits/stdc++.h>
using namespace std;
const int N = 505;
struct Edge{
int from;
int to;
};
int n,m;
int indegree[N];
vector<Edge> e[N];
void topo(){
priority_queue<int,vector<int>,greater<int>>q;
for(int i = 1; i <= n; i++){
if(indegree[i] == 0){
q.push(i);
}
}
while(!q.empty()){
int u = q.top();
q.pop();
printf("%d ",u);
for(int i = 0; i < e[u].size(); i++){
Edge next = e[u][i];
indegree[next.to] --;
if(indegree[next.to] == 0){
q.push(next.to);
}
}
}
printf("\n");
}
int main(){
while(cin >> n >> m){
for(int i = 1; i <= n; i++){
indegree[i] = 0;
e[i].clear();
}
for(int i = 1; i <= m; i++){
int u,v;
cin >> u >> v;
...
登录后发布评论
暂无评论,来抢沙发