本文共 878 字,大约阅读时间需要 2 分钟。
#include #include #include #include #include #include #include #include #include #define INF 0x3f3f3f3fusing namespace std;int dis[105][105];int main(){ int n,m; cin>>n>>m; memset(dis,INF,sizeof(dis)); for(int i=1;i<=n;i++){ dis[i][i]=0; } int a,b; for(int i=1;i<=m;i++){ cin>>a>>b; dis[a][b]=1; } for(int k=1;k<=n;k++){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]); } } } int sum=0; for(int i=1;i<=n;i++){ int flag=0; for(int j=1;j<=n;j++){ if(j!=i){ if(dis[i][j]==INF){ if(dis[j][i]==INF){ flag=1; break; } } } } if(flag==0){ sum++; } } cout< <
转载于:https://www.cnblogs.com/wang9897/p/7624393.html