| 比赛 |
五一大礼包 |
评测结果 |
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;
}