80分,求助
  • 板块P2712 摄像头
  • 楼主jfm0211
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/6/23 21:57
  • 上次更新2024/6/24 12:41:49
查看原帖
80分,求助
1037310
jfm0211楼主2024/6/23 21:57

代码如下:

#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int n,rudu[505],cnt; 
const int N=505;
vector <int> g[N];
queue <int> q;
void tuopu(){
	for(int i=1;i<=n;i++){
		if(!rudu[i]){
			q.push(i);
			cnt++;
		}
	}
	while(!q.empty()){
		int u=q.front();
		q.pop();
		for(int i=1;i<=g[u].size();i++){
			int v=g[u][i];
			rudu[v]--;
			if(rudu[v]==0){
				q.push(v);
				cnt++;
			}
		}
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		int x,y,m;
		cin>>x>>m;
		for(int j=1;j<=m;j++){
			cin>>y;
			g[x].push_back(y);
			rudu[y]++;
		}
	}
	tuopu();
	int ans=n-cnt;
	if(ans){
		cout<<ans;
	}
	else{
		cout<<"YES";
	}
	return 0;
}
2024/6/23 21:57
加载中...