Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
149094 林泽豪 双色马 C++ 通过 100 14 MS 264 KB 481 2024-05-25 16:04:07

Tests(15/15):


#include<bits/stdc++.h> using namespace std; const int N=600; #define dp(i,j) dp[(i)%2][j] int n,K,dp[3][N],b[N]; int main(){ cin>>n>>K; for(int i=1;i<=n;i++){ bool l; cin>>l; b[i]=b[i-1]+l; } for(int i=0; i<2; i++) for(int j=i+1; j<501; j++) dp[i][j]=1<<30; for(int i=1;i<=K;i++){ for(int j=1;j<=n-K+i;j++){ for(int k=i-1;k<j;k++)dp(i,j)=min(dp(i,j),dp(i-1,k)+(b[j]-b[k])*(j-k-(b[j]-b[k]))); } } cout<<dp(K,n); }


测评信息: