您的位置:首页 > 其它

poj 3660 Cow Contest floyd 传递闭包!!基础

2011-11-30 23:27 399 查看
算出比i小的couy,算出比i大的 coux,看相加是不是等于n-1,果断一a!!!
#include<iostream>
using namespace std;
int map[105][105];
int main()
{
int n,m,x,y;
while(cin>>n>>m)
{
memset(map,0,sizeof(map));
while(m--)
{
scanf("%d%d",&x,&y);
map[x][y]=1;
}
for(int k=1;k<=n;k++)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
map[i][j]=max(map[i][j],min(map[i][k],map[k][j]));
}
}
int coux=0,couy=0,cou=0;
for(int i=1;i<=n;i++)
{
coux=0;
couy=0;
for(int j=1;j<=n;j++)
{
if(map[i][j])
coux++;
if(map[j][i])
couy++;
}
if(coux+couy==n-1)
cou++;
}
cout<<cou<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: