求助 P2712
  • 板块灌水区
  • 楼主jiqiyin2653
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/12/1 20:46
  • 上次更新2024/12/1 21:10:33
查看原帖
求助 P2712
935992
jiqiyin2653楼主2024/12/1 20:46
#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<vector<int> >a(500005);
int tong[500005],x,y,b[500005];
queue<int>q;
bool bfs(){
	for(int i=0;i<=505;i++){
		if(tong[i]==0&&b[i]==1){
			q.push(i);
		}
	}
	int ans=0;
	while(!q.empty()){
		int k=q.front();
		q.pop();
		ans++;
		for(int i=0;i<a[k].size();i++){
			if(b[a[k][i]]>=1){
				tong[a[k][i]]--;
				if(tong[a[k][i]]==0){
					q.push(a[k][i]);
				}
			}
		}
	}
	if(ans==n){
		cout<<"YES";
	}
	else cout<<n-ans;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>x>>m;
		b[x]=1;
		for(int j=1;j<=m;j++){
			cin>>y;
			a[x].push_back(y);
			tong[y]++;
		}
	}
	bfs();
	return 0;
}

十个点全部RE 求问题

2024/12/1 20:46
加载中...