poj3660Cow Contest(floyd)
题目链接:http://poj.org/problem?id=3660
floyd。
1 #include<cstdio> 2 #include<cstring> 3 int n,m; 4 int pic[110][110]; 5 void floyd() 6 { 7 for(int k=1;k<=n;k++) 8 for(int i=1;i<=n;i++) 9 for(int j=1;j<=n;j++) 10 pic[i][j]=pic[i][j]|pic[i][k]&pic[k][j]; 11 } 12 13 int main() 14 { 15 int u,v; 16 while(scanf("%d%d",&n,&m)!=EOF) 17 { 18 for(int i=1;i<=n;i++) 19 for(int j=1;j<=n;j++) 20 pic[i][j]=(i==j?1:0); 21 for(int i=0;i<m;i++) 22 { 23 scanf("%d%d",&u,&v); 24 pic[u][v]=1; 25 } 26 floyd(); 27 int ans=0; 28 for(int i=1;i<=n;i++) //枚举牛i 29 { 30 int cnt=0; 31 for(int j=1;j<=n;j++) 32 { 33 if(pic[i][j]) cnt++; //比i小的 34 if(pic[j][i]) cnt++; //比i大的 35 } 36 if(cnt==n+1) ans++; //自己被重复算 37 } 38 printf("%d\n",ans); 39 } 40 return 0; 41 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步