Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
41309 真很诡异你知道吗其实我不是皇子瑞 【S】T4 C++ 解答错误 0 72 MS 16716 KB 1531 2026-04-15 21:44:47

Tests(0/10):


#include<bits/stdc++.h> using namespace std; long long _,n,a[100005],dp[100005][11],dp2[100005][11]; int main(){ scanf("%lld",&_); while(_--){ scanf("%lld",&n); for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); for(int j=0;j<=10;j++){ dp[i][j]=dp2[i][j]=0x3f3f3f3f3f3f3f3f; } } for(int j=0;j<=10;j++){ dp[0][j]=dp2[n+1][j]=0; } for(int i=1;i<=n;i++){ for(int j=0;j<=10;j++){ if(a[i]<=j){ dp[i][j]=dp[i-1][j]; } else{ dp[i][j]=min(dp[i][j],dp[i-1][a[i]]+(a[i]-j)*i); } // printf("%lld ",dp[i][j]); } // printf("\n"); } dp2[n+1][0]=0; for(int i=n;i>=1;i--){ for(int j=0;j<=10;j++){ if(a[i]<=j){ dp2[i][j]=dp2[i+1][j]; } else{ dp2[i][j]=min(dp2[i][j],dp2[i+1][a[i]]+(a[i]-j)*(n-i+1)); } } } long long ans=0x3f3f3f3f3f3f3f3f; for(int i=1;i<=n;i++){ long long sum=0x3f3f3f3f3f3f3f3f; for(int j=0;j<=a[i];j++){ sum=min(sum,dp[i-1][j]+dp2[i+1][a[i]-j]+j*i+(a[i]-j)*(n-i+1)); } ans=min(ans,sum); // printf("%lld ",ans); } printf("%lld\n",ans); } }


测评信息: