1 条题解
-
1
初次使用floyd算法 本来用矩阵想用一层循环(怕runtime error)但想不通,没想到用简单的四行代码就解决了,惊艳
#include<iostream> using namespace std; int g[110][110]; void Floyd(int x[][110]) { for(int k=1;k<=100;k++) for(int i=1;i<=100;i++) for(int j=1;j<=100;j++) if(x[i][k]&&x[k][j]) x[i][j]=1; } int main() { int n; cin>>n; for(int i=0;i<n;i++) { int x, y; cin>>x>>y; g[x][y]=1; } Floyd(g); int cnt=0; for(int i=1;i<=100;i++) for(int j=1;j<=100;j++) if(g[i][j]) cnt++; cout<<cnt<<endl; return 0; }
- 1
信息
- ID
- 35
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 143
- 已通过
- 50
- 上传者