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

来源:互联网 发布:淘宝店推荐 知乎 编辑:程序博客网 时间:2024/05/06 15:56
算出比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;}