Cow Contest
POJ-3660
1.本题考察的是最短路,用的算法是Floyd算法
2.如果一个结点和剩余的n-1个结点都有关系,那么可以确定其排名
3.需要注意的是,判断是否有关系时,反向关系也要考虑
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int n,m; int map[101][101]; int main(){ ios::sync_with_stdio(false); cin.tie(0); cin>>n>>m; int a,b; memset(map,0,sizeof(map)); for(int i=0;i<m;i++){ cin>>a>>b; map[a][b]=1; } for(int k=1;k<=n;k++){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(!map[i][j]) if(map[i][k]&&map[k][j]){ map[i][j]=1; } } } } int cnt=0; for(int i=1;i<=n;i++){ int ans=0; for(int j=1;j<=n;j++){ if(i!=j){ if(map[i][j]||map[j][i]) ans++; } } if(ans==n-1) cnt++; } cout<<cnt<<endl; //system("pause"); return 0; }