比赛 五一大礼包 评测结果 AAEEEEEEEEAAAAAAAA
题目名称 Ave Mujica 最终得分 58
用户昵称 RpUtl 运行时间 3.630 s
代码语言 C++ 内存使用 12.19 MiB
提交时间 2026-05-04 11:27:39
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long ll;
const int N=1005;
const ll inf=0x3f3f3f3f3f3f3f3f;
int n,K,a[N],b[N];
ll f[2][N][N];
inline void cmin(ll &u,ll v){u=min(u,v);}
int main(){
    freopen("Mujica.in","r",stdin);
    freopen("Mujica.out","w",stdout);
    scanf("%d %d",&n,&K);
    for(int i=1;i<=n;i++)scanf("%d",a+i);
    for(int i=1;i<=n;i++)scanf("%d",b+i);
    memset(f,0x3f,sizeof(f));
    f[0][0][0]=0;
    for(int i=0,o=0;i<n;i++,o^=1){
        for(int j=0;j<=min(i,K);j++){
            for(int k=0;k<=min(j,K);k++){
                if(f[o][j][k]==inf)continue;
                cmin(f[o^1][j][k],f[o][j][k]);//什么都不干 
                if(j<K)cmin(f[o^1][j+1][k],f[o][j][k]+a[i+1]);// A 生产一个
                if(k<K)cmin(f[o^1][j][k+1],f[o][j][k]+b[i+1]);// B 生产一个
                if(j<K&&k<K)cmin(f[o^1][j+1][k+1],f[o][j][k]+a[i+1]+b[i+1]);//A,B 生产一个 
                f[o][j][k]=inf;
            }
        }
    }
    printf("%lld\n",f[n&1][K][K]);
    return 0;
}