正解好难调,想先写个暴力吧,对拍代码,一交,70pts。
因为决策单调性,我想优化一下,就
for(int i=1,t=0;i<=n;i++){ for(int j=t;j^i;j++){ int x=sum[i]-sum[j]+i-j-1-l; if(dp[j]+x*x<=dp[i])t=j,dp[i]=dp[j]+x*x; } }
最慢的点25ms。。。