显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int nainiu[101][101]={0};
int n,m;
int sum=0;
int main(int argc, char** argv) {
freopen("contest.in","r",stdin);
freopen("contest.out","w",stdout);
memset(nainiu,0x3f,sizeof(nainiu));
cin>>n>>m;
for(int i=1;i<=m;i++){
int a,b;
cin>>a>>b;
nainiu[a][b]=1;
}
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
if(i==k)continue;
for(int j=1;j<=n;j++){
if(i==j||j==k)continue;
nainiu[i][j]=min(nainiu[i][k]+nainiu[k][j],nainiu[i][j]);
}
}
}
int sum=0;
for(int i=1;i<=n;i++){
bool flag=true;
for(int j=1;j<=n;j++){
if(i==j)continue;
if(nainiu[i][j]<9999999||nainiu[j][i]<9999999){
}else{
flag=false;
break;
}
}
if(flag){
sum++;
}
}
cout<<sum;
return 0;
}