本来想用 Floyd 搞个 70 分练手,但万万没想到WA 了,求助大佬
代码:
#include <iostream>
using namespace std;
int main(){
int n,m,s,e[1001][1001],inf = 0x3f3f3f3f;
cin >> n >> m >> s;
for(int i = 1;i <= n;i++)
for(int j = 1;j <= n;j++)
e[i][j] = i == j ? 0 : inf;
for(int i = 1;i <= m;i++){
int t1,t2,t3;
cin >> t1 >> t2 >> t3;
e[t1][t2] = t3;
}
for(int k = 1;k <= n;k++)
for(int i = 1;i <= n;i++)
for(int j = 1;j <= n;j++)
e[i][j] = min(e[i][j],e[i][k] + e[k][j]);
for(int i = 1;i <= n;i++)
cout << e[s][i] << " ";
cout << endl;
return 0;
}
几乎模板,但却错了,第一个数据输入是:
5 15 5
2 5 181
1 5 98
4 2 49
3 2 262
4 3 26
2 4 192
5 1 221
2 2 254
4 4 233
1 5 44
5 4 67
4 2 214
1 1 47
1 1 118
5 4 3
正确:
221 52 29 3 0
我的代码:
221 217 29 3 0