社区讨论

70分,求调

P2712摄像头参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mhjkwrec
此快照首次捕获于
2025/11/04 04:14
4 个月前
此快照最后确认于
2025/11/04 04:14
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;

const int N = 1e4 + 10;
int n, m, cnt, deg[N];

queue<int> q;
vector<int> adj[N];

void topo(){
	for(int i = 1; i <= n; i ++){
		if(deg[i] == 0){
			cnt ++;
			q.push(i);
            deg[i] = -1;
		}
	}
	while(!q.empty()){
		int x = q.front();
		q.pop();
		for(int y : adj[x]){
			deg[y] --;
			if(deg[y] == 0){
				cnt ++;
				q.push(y);
                deg[y] = -1;
			}
		}
	}
	return;
}

int main(){
	cin >> n;
	for(int i = 1; i <= n; i ++){
		int x, m, y;
		cin >> x >> m;
		for(int j = 1; j <= m; j ++){
			cin >> y;
			deg[y] ++;
			if(y <= n)adj[x].push_back(y);
		}
	}
	topo();
	if(cnt == n) cout << "YES";
	else cout << n - cnt;
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...