摄像头

来源:互联网 发布:产品说明书印刷 知乎 编辑:程序博客网 时间:2024/04/27 14:50

拓补排序
找入度为零的,就是没被监视的,删掉
继续找入度为零的,继续删
直到找不到
输出答案

#include<cstdio>#include<algorithm>#include<iostream>#include<cmath>#define ll long longusing namespace std;int n,t;int r[199999],c[1999][1999],a[19999],f,flag[19999];int main(){    scanf("%d",&n);    for(int i=1;i<=n;i++)    {        int x;        scanf("%d%d",&a[i],&x);        c[a[i]][0]=x;        //printf("\n%d %d",a[i],c[a[i]][0]);        for(int j=1;j<=c[a[i]][0]; j++)        {        scanf("%d",&x); c[a[i]][j]=x;        r[x]++;        }    }    f=1;    while(f)    {        f=0;        for(int i=1;i<=n;i++)        if(r[a[i]]==0&&!flag[a[i]])        {            ++t,f=1;flag[a[i]]=1;            for(int j=1;j<=c[a[i]][0];j++)            r[c[a[i]][j]]--;        }    }    if(t==n)printf("YES");    else printf("%d",n-t);}