社区讨论

奇奇怪怪的代码

P1359租用游艇参与者 4已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@m63a0ks4
此快照首次捕获于
2025/01/19 15:08
去年
此快照最后确认于
2025/11/04 11:18
4 个月前
查看原帖
代码这样改就过了? 前期如下
CPP
#include<bits/stdc++.h>
using namespace std;
int n,dp[1001][1001],a[1001]; 
int main()
{
	cin>>n;
	for(int i=1;i<n;i++){
		for(int j=i+1;j<=n;j++)
		cin>>dp[i][j];
		a[i]=1e8;
	}
	for(int i=1;i<=n;i++)
        a[i]=dp[1][i];
    for(int i=2;i<=n;i++){
    	for(int j=2;j<=i;j++)
    	    a[i] = min(a[i],a[j-1]+dp[j-1][i]);
	}
	cout<<a[n];
	return 0;
}
改后
CPP
#include<bits/stdc++.h>
using namespace std;
int n,dp[1001][1001],a[1001]; 
int main()
{
	cin>>n;
	for(int i=1;i<n;i++){
		for(int j=i+1;j<=n;j++)
		cin>>dp[i][j];
		a[n]=0;
	}
	for(int i=1;i<=n;i++)
        a[i]=dp[1][i];
    for(int i=2;i<=n;i++){
    	for(int j=2;j<=i;j++)
    	    a[i] = min(a[i],a[j-1]+dp[j-1][i]);
	}
	cout<<a[n];
	return 0;
}
直接AC了,但我懵懵的,哪位大佬指点一二。

回复

6 条回复,欢迎继续交流。

正在加载回复...