拓扑排序板子求助
查看原帖
拓扑排序板子求助
855900
CyberRiot楼主2023/10/19 20:46

提交了几次都是 WA 但是没法看数据,不知道哪里错了。

代码如下

#include<iostream>
#include<vector>
#include<queue>
using namespace std;
vector <int> edge[110];
int deg[110];
queue <int> q;
int main(){
	int n,m;
	while(cin>>n>>m){
		if(!n&&!m)
			return 0;
		for(int i=1;i<=m;i++){
			int u,v;
			scanf("%d%d",&u,&v);
			edge[u].push_back(v);
			deg[v]++;
		}
		for(int i=1;i<=n;i++){
			if(deg[i]==0){
				q.push(i);
				printf("%d ",i);
			}
		}
		while(!q.empty()){
			int u=q.front();
			q.pop();
			for(int i=0;i<edge[u].size();i++){
				deg[edge[u][i]]--;
				if(deg[edge[u][i]]==0){
					q.push(edge[u][i]);
					printf("%d ",edge[u][i]);
				}
			}
		}
		printf("\n");
	}
}
2023/10/19 20:46
加载中...