Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
152359 吴悠 双色马 C++ 通过 100 27 MS 1236 KB 511 2024-06-23 10:46:22

Tests(15/15):


#include<iostream> #include<cstring> using namespace std; int sum[501],dp[501][501]; bool a[501]; int main(){ int n,k; cin>>n>>k; memset(dp,0x3f,sizeof(dp)); for(int i=1;i<=n;i++){ cin>>a[i]; sum[i]+=sum[i-1]+a[i]; } for(int i=1;i<=n;i++){ dp[i][1]=sum[i]*(i-sum[i]); } for(int j=2;j<=k;j++){ for(int i=j;i<=n;i++){ for(int t=j-1;t<=i-1;t++){ dp[i][j]=min(dp[t][j-1]+(sum[i]-sum[t])*(i-t-(sum[i]-sum[t])),dp[i][j]); } } } cout<<dp[n][k]<<endl; return 0; }


测评信息: