70pts,求差错

P1613 跑路

~~希望更丰富的展现?使用Markdown~~
by 已注销^6Gv$vkg @ 2019-02-12 16:42:40


``` #include<bits/stdc++.h> using namespace std; int n,m,dis[55][55]; bool f[55][55][64]; int main(){ scanf("%d%d",&n,&m); for (int i=1;i<=m;i++){ int x,y;scanf("%d%d",&x,&y); f[x][y][0]=true; } for (int p=1;p<=64;p++) for (int k=1;k<=n;k++) for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (f[i][k][p-1]&&f[k][j][p-1]) f[i][j][p]=true; for (int p=0;p<=64;p++) for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (f[i][j][p]) {dis[i][j]=1;} for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (dis[i][j]!=1) dis[i][j]=1000000000; for (int k=1;k<=n;k++) for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (dis[i][k]+dis[k][j]<dis[i][j]) dis[i][j]=dis[i][k]+dis[k][j]; printf("%d\n",dis[1][n]); return 0; } ```
by Spasmodic @ 2019-09-16 23:20:09


~~代码太乱,不想看~~
by Spasmodic @ 2019-09-16 23:20:41


|