样例过了,但是0pts

P2426 删数

@[liwenxi110720](/user/661913) 去找这个 [天才](https://www.luogu.com.cn/user/1027991)
by linjianju_xi @ 2024-01-29 16:05:02


@[liwenxi110720](/user/661913) 文中“,如果只去掉一个数,操作价值为这个数的值。 问如何操作可以得到最大值,求操作的最大价值。”我建议你吧算贡献的地方写成一个含数,特判一下 i==j 的时候,还有有可能全删了分段前要 dp[i][j]=sz(i,j);我的代码你参考一下 ```cpp #include<bits/stdc++.h> using namespace std; const int N=1e2+5; int a[N],f[N][N],n; int sz(int i,int j) { if(i==j) return a[i]; return abs(a[j]-a[i])*(j-i+1); } int main(){ memset(f,0xcf,sizeof(f)); cin>>n; for(int i=1;i<=n;i++) cin>>a[i],f[i][i]=a[i]; for(int len=2;len<=n;len++) { for(int i=1;i+len-1<=n;i++) { int j=i+len-1; f[i][j]=sz(i,j); for(int k=i;k<j;k++) { f[i][j]=max(f[i][j],max(f[i][k]+sz(k+1,j),f[k+1][j]+sz(i,k))); } } } cout<<f[1][n]; return 0; } ```
by sto_0616allen_orz @ 2024-03-17 13:24:10


|