poj 3660 Cow Contest【floyd】

来源:互联网 发布:2017淘宝村发布会 编辑:程序博客网 时间:2024/04/27 20:53

Cow Contest
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 8431 Accepted: 4758


Sample Input

5 54 34 23 21 22 5


Sample Output

2


题目大意:给出n头奶牛,有给出m种奶牛的能力关系,然后依照能力排名,问有多少头奶牛的排名已经确定(能力值高的在前面);

思路:用Floyd算法,遍历每头牛,如果有这么一头牛,比他排名高的和比他排名第的总数为n-1,则这头牛排名已经确定;

已Accept代码

#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int p[106][106];int main(){int n,m,i,j,k,a,b;while(scanf("%d%d",&n,&m)!=EOF){memset(p,0,sizeof(p));for(i=0;i<m;i++){scanf("%d%d",&a,&b);p[a][b]=1;}for(i=1;i<=n;i++)for(j=1;j<=n;j++)for(k=1;k<=n;k++)if(p[j][i]&&p[i][k])p[j][k]=1;//牛j能力比牛k高,记为 1 ; int total=0;for(i=1;i<=n;i++){int t=0;for(j=1;j<=n;j++)t+=p[i][j]+p[j][i];//记录排名比牛i 高的 和 低的 总的个数 if(t==n-1)total++;}printf("%d\n",total);}return 0;}




0 0
原创粉丝点击