题目链接
1 /*
2 Name:nyoj-211-Cow Contest
3 Copyright:
4 Author:
5 Date: 2018/4/27 21:02:06
6 Description:
7 floyd算法
8 大佬的惊奇思路
9 */
10 #include <iostream>
11 #include <cstdio>
12 #include <cstring>
13 using namespace std;
14
15 const int MAXN = 105;
16 const int INF = 0x3f3f3f3f;
17 int N, g[MAXN][MAXN], M;
18
19 void floyd() {
20 for (int k=1; k<=N; k++) {
21 for (int i=1; i<=N; i++) {
22 for (int j=1; j<=N; j++) {
23 if (g[i][k] && g[k][j])
24 g[i][j] = 1;//有关系
25 }
26 }
27 }
28 }
29 int main()
30 {
31 while (cin>>N>>M, N+M) {
32 memset(g, 0, sizeof(g));
33 for (int i=0; i<M; i++) {
34 int x, y;
35 cin>>x>>y;
36 g[x][y] = 1;
37 }
38 floyd();
39 int i, j, ans=0;
40 for (i=1; i<=N; i++) {
41 for (j=1; j<=N; j++) {
42 if (i==j) continue;
43 if (g[i][j] == 0 && g[j][i] == 0) break;//和其他牛中的一头没有关系就不能确定排名
44 }
45 if (j > N) ans++;
46 }
47 cout<<ans<<endl;
48 }
49 return 0;
50 }