90救救我!
  • 板块P2712 摄像头
  • 楼主NYNY111
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/13 17:04
  • 上次更新2024/8/13 19:51:00
查看原帖
90救救我!
1370369
NYNY111楼主2024/8/13 17:04
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int inf=3000;
struct edge{
	ll to,next;
}e[inf*inf];
ll head[inf],cnt;
ll in[inf];
void add(int u,int v){
	e[++cnt]={v,head[u]};
	head[u]=cnt;
}
ll n;
queue<int>q;
ll ans;
ll vis[505];
ll maxn;
void toposort(){
	for(int i=1;i<=maxn;i++){
		if(!in[i]&&vis[i]){
			ans++;
			q.push(i);
		}
	}
	while(q.size()){
		ll x=q.front();q.pop();
		for(ll i=head[x];i;i=e[i].next){
			ll j=e[i].to;
			in[j]--;
			if(!in[j]&&vis[j]){
				ans++;
				q.push(j);
			}
		}
	}
}
int main(){
	cin>>n;
	ll a,m,c;
	for(ll i=0;i<n;i++){
		cin>>a>>m;
		vis[a]=1;
		for(int j=0;j<m;j++){
			cin>>c;
			add(a,c);
			in[c]++;
			maxn=max(max(a,c),maxn);
		}
	}
	toposort();
	if(ans<n)
	cout<<n-ans;
	else
	cout<<"Yes";
	return 0;
}
2024/8/13 17:04
加载中...