求帮助 悬赏1关注
  • 板块灌水区
  • 楼主liuergou
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/13 22:20
  • 上次更新2023/11/14 10:51:50
查看原帖
求帮助 悬赏1关注
722656
liuergou楼主2023/11/13 22:20

P2712 70pts

#include <bits/stdc++.h>
using namespace std;
int n,ans;
int in[1010];
vector<int>e[1010];
queue<int>q;
bool box[1010];
int main(){
	cin >> n;
	ans=n;
	for(int i=1;i<=n;i++){
		int x,m;
		cin >> x >> m;
		while(m--){
		    int v;
		    cin >> v;
		    e[x].push_back(v);
		    in[v]++;
		    box[x]=1;
		}
	}
	for(int i=1;i<=n;i++){
		if(in[i]==0){
			q.push(i);
		}
	}
	while(q.size()){
		int t=q.front();
		ans--;
		q.pop();
		//cout << "camera " << t << " has broken" << endl;
        //cout << "last " << ans << " cameras" << endl;
		for(auto v:e[t]){
			in[v]--;
			//cout << "camera " << v << " last " << in[v] << " lives" << endl;
			if(in[v]==0&&box[v]){
			    q.push(v);
			}
		}
	}
	if(ans)cout << ans;
	else cout << "YES";
	return 0;
}

很明显发在题目专版的话被看到的几率不大

2023/11/13 22:20
加载中...