1384:珍珠(bead)

珍珠

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;

#define inf 0x3f3f3f3f
const int N=105;
int mapp[N][N];
// int ans[N];
int main(){
	int n,m;
    scanf("%d%d",&n,&m);
	// memset(mapp,inf,sizeof(mapp));
	while(m--){
		int a,b;
		scanf("%d%d",&a,&b);
		mapp[b][a]=1;
	}
	//floyd算法这种用法是真的nice
    for(int k=1;k<=n;k++)
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
				mapp[i][j]=mapp[i][j]||(mapp[i][k]&&mapp[k][j]);
	
	int ans=0;
	for(int i=1;i<=n;i++){
		int cnt1=0;
		for(int j=1;j<=n;j++)
			if(mapp[i][j])cnt1++;
		int cnt2=0;
		for(int j=1;j<=n;j++)
			if(mapp[j][i])cnt2++;
		if(cnt1>n/2||cnt2>n/2)ans++;
	}
    printf("%d",ans);
    return 0;
}
posted @ 2021-10-30 13:30  Rekord  阅读(563)  评论(0编辑  收藏  举报