bzoj 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛【Floyd】

floyd传递关系,一个牛能确定排名的条件是能和所有牛确定关系

#include<iostream>
#include<cstdio>
using namespace std;
const int N=105;
int n,m,a[N][N],ans;
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		a[x][y]=1;
	}
	for(int k=1;k<=n;k++)
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				a[i][j]=a[i][j]|(a[i][k]&a[k][j]);
	for(int i=1;i<=n;i++)
	{
		int ok=1;
		for(int j=1;j<=n;j++)
			if(i!=j&&!a[i][j]&!a[j][i])
			{
				ok=0;
				break;
			}
		ans+=ok;
	}
	printf("%d\n",ans);
	return 0;
}
posted @ 2018-04-25 10:06  lokiii  阅读(154)  评论(0编辑  收藏  举报