UVA10305 求助 (样例已过)
  • 板块灌水区
  • 楼主不慕放糖
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/10/21 22:02
  • 上次更新2023/11/4 02:59:07
查看原帖
UVA10305 求助 (样例已过)
544113
不慕放糖楼主2021/10/21 22:02
#include<bits/stdc++.h>
using namespace std;
vector<int> e[10000];
queue<int>q; 
int num=0;
int in[10000],ans[10000];//统计入度 
int main(){
	int n,m,x,y;
	cin>>n>>m;

	for(int i=1;i<=m;i++){
		cin>>x>>y;
		
		e[x].push_back(y);//建边 
		in[y]++;
	}
	cin>>x>>y;
	for(int i=1;i<=n;i++){
		if(in[i]==0) {
		q.push(i); }
	} 
	while(!q.empty()){
	   int u=q.front(); q.pop(); 
		ans[++num]=u; 
		for(int i=0;i<e[u].size();i++){
             in[e[u][i]]--;//e[u][i]的表示从u的出发第i个边的指向的点 
		    if(in[e[u][i]]==0) q.push(e[u][i]);
         }	 
}
	if(num==n){
		for(int i=1;i<=num;i++) cout<<ans[i]<<" ";
	}
	return 0; 
}
2021/10/21 22:02
加载中...