网站开发属于购销合同,北京网站建设 案例,甘肃省第九建设集团网站,设计排版软件题意#xff1a; 有N头牛#xff0c;每头牛都会有比他强的或者弱的牛#xff0c;按照牛的强弱排序#xff0c;问有几头牛的位置是确定的。 5 5#xff08;n,m#xff09;
4 3
4 2
3 2
1 2
2 5则4325 125故只有2,5是确定的。 1 #include 有N头牛每头牛都会有比他强的或者弱的牛按照牛的强弱排序问有几头牛的位置是确定的。 5 5n,m
4 3
4 2
3 2
1 2
2 5则4325 125故只有2,5是确定的。 1 #include iostream2 #include cstdio3 #include cstring4 #include algorithm5 6 using namespace std;7 #define MAXN 1028 #define MAXM 45109
10 int map[MAXN][MAXN];
11 int N,M;
12 int relat[MAXN][MAXN];//0表示i,j的关系未确定1表示ij,2表示ij。
13
14 void floyd()
15 {
16 for(int k1;kN;k)
17 for(int i1;iN;i)
18 for(int j1;jN;j)
19 {
20 if(relat[i][j] ! 0 || !relat[i][k] || !relat[k][j])
21 continue;
22 if(relat[i][k]2 relat[k][j]2)
23 {
24 relat[i][j]2;
25 relat[j][i]1;
26 }
27 else if(relat[i][k]1 relat[k][j]1)
28 {
29 relat[i][j]1;
30 relat[j][i]2;
31 }
32 }
33 }
34
35 void solve()
36 {
37 floyd();
38 int ans0;
39 for(int i1;iN;i)
40 {
41 bool flag0;
42 for(int j1;jN;j)
43 {
44 if(ij)
45 continue;
46 if(relat[i][j]0)
47 {
48 flag1;
49 break;
50 }
51 }
52 if(!flag)
53 ans;
54 }
55 printf(%d\n,ans);
56 }
57
58 int main()
59 {
60 int x,y;
61 while(scanf(%d%d,N,M) ! EOF)
62 {
63 memset(relat,0,sizeof(relat));
64 while(M--)
65 {
66 scanf(%d%d,x,y);
67 map[x][y]1;
68 relat[x][y]2;
69 relat[y][x]1;
70 }
71 solve();
72 }
73 return 0;
74 } 转载于:https://www.cnblogs.com/Missa/archive/2012/08/30/2664278.html