本题为什么需要在f[i][i]初始化时初始成n*a[i]
查看原帖
本题为什么需要在f[i][i]初始化时初始成n*a[i]
1028442
linruizhe111楼主2024/11/8 21:39
#include <bits/stdc++.h>
using namespace std;
int n,m,f[2020][2020],a[2010];
int main()
{                       
    cin>>n;
//    memset(f,0x3f,sizeof(f));
    for(int i=1;i<=n;i++){
        cin>>a[i];
        f[i][i]=a[i]*n;
    }
    for(int len=2;len<=n;len++){
        for(int l=1;l+len-1<=n;l++){
            int r=l+len-1;
            f[l][r]=max(f[l+1][r]+a[l]*(n-r+l),f[l][r]);
            f[l][r]=max(f[l][r-1]+a[r]*(n-r+l),f[l][r]);
    }       }
    int ans=0;  
    cout << f[1][n];
 	return 0;//orz
}
2024/11/8 21:39
加载中...