- 租用游艇(1次换乘)
80分求调
- @ 2025-11-18 19:33:45
为什么6、7的测试点过不了? 以下是我的代码
#include<bits/stdc++.h>
using namespace std;
int r[205][205],f[205],n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
r[i][j]=0;
}
}
for(int i=1;i<=n-1;i++){
for(int j=i+1;j<=n;j++){
cin>>r[i][j];
}
}
f[1]=0;
for(int i=2;i<=n;i++){
f[i]=INT_MAX;
}
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(f[i]!=INT_MAX&&r[i][j]!=0){
f[j]=min(f[j],f[i]+r[i][j]);
}
}
}
cout<<f[n]<<endl;
return 0;
}
我到底是哪一步错了?!求100分的大佬帮助呀!!!!
2 条评论
-
X倪子溯 LV 6 @ 2025-12-21 9:43:27是洛谷原题吗
-
@ 2025-11-22 16:22:16你的代码应该是从2821复制来的,
这题只能换乘一次,而代码中从 到 可能已经换乘一次,再从 到 可能又换乘了,这样就不行了.
总而言之,就是走了不能走的路径#include <bits/stdc++.h> using namespace std; int n, G[210][210], ans; int main () { cin >> n; for (int i = 1; i <= n - 1; i++) for (int j = i + 1; j <= n; j++) cin >> G[i][j]; ans = G[1][n]; for (int k = 2; k <= n - 1; k++) ans = min(ans, G[1][k] + G[k][n]); cout << ans; return 0; }
- 1
信息
- ID
- 2827
- 时间
- ms
- 内存
- MiB
- 难度
- 1
- 标签
- (无)
- 递交数
- 24
- 已通过
- 47
- 上传者