(洛谷 1359) 租用游艇
2018-01-25 14:31
134 查看
分析:求最小代价
floyd
代码如下:
#include <cstdio> #include <cstring> using namespace std; int f[201][201],n; int main(){ scanf("%d",&n); memset(f,0x7f,sizeof(f)); for (int i=1;i<=n;i++) for (int j=i+1;j<=n;j++) scanf("%d",&f[i][j]); for (int k=1;k<=n;k++) for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (f[i][j]>(long long)f[i][k]+f[k][j]) f[i][j]=f[i][k]+f[k][j]; printf("%d",f[1][n]); return 0; }