- #include<iostream>
- #include<cstring>
- using namespace std;
- const int N=110,INF=0x3f3f3f3f;
- int f[N][N];
- int main()
- {
- int n,m;
- cin>>n>>m;
- memset(f,0x3f,sizeof f);
- int x,y;
- for(int i=0;i<m;i++)
- {
- cin>>x>>y;
- //x>y
- f[x][y]=1;
- //x<y
- f[y][x]=-1;
- }
- for(int k=1;k<=n;k++)
- for(int i=1;i<=n;i++)
- for(int j=1;j<=n;j++)
- if(f[i][k]==f[k][j]&&(f[i][k]==1||f[i][k]==-1))
- f[i][j]=f[i][k];
- int ans=0;
- for(int i=1;i<=n;i++)
- {
- int sum=0;
- // 如果能确定和其他 niu 的关系
- for(int j=1;j<=n;j++)
- if(f[i][j]!=INF)
- sum++;
- if(sum==n-1)
- ans++;
- }
- cout<<ans<<endl;
- }
来源: http://www.bubuko.com/infodetail-3395823.html