求助
  • 板块P2712 摄像头
  • 楼主zljhenry
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/6/5 15:04
  • 上次更新2023/11/4 22:17:56
查看原帖
求助
363144
zljhenry楼主2021/6/5 15:04

为什么70分?

#include<bits/stdc++.h>
#define ll long long
#define M 1000001
using namespace std;
int v[M],ft[M],nt[M],idx;
int deg[M],f[M],u[M],cnt,n,a[M];
queue<int>q;
void add(int a,int b){
	v[++idx]=b;
	nt[idx]=ft[a];
	ft[a]=idx;
	deg[b]++;
}
void topsort(){
	for(int i=0;i<n;i++)
	if(deg[a[i]]==0){
		q.push(a[i]);//u[i]=1;
	}
	  
	while(q.size()){
		cnt++;
		int x=q.front();
		q.pop();
		for(int i=ft[x];i;i=nt[i]){
			int y=v[i];
			deg[y]--;
			if(!u[y]&&deg[y]==0){
				q.push(y);
			} 
		}
	}
}

int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		int x,m;
		cin>>a[i]>>m;
		for(int j=1;j<=m;j++){
			int y;
			cin>>y;
			add(a[i],y);
		}
	}
	topsort();
	if(cnt==n) cout<<"YES";
	else cout<<n-cnt+1;
	
	return 0;
}
2021/6/5 15:04
加载中...