| 比赛 |
五一大礼包 |
评测结果 |
AAEEEEEEEEAAAAAAAA |
| 题目名称 |
Ave Mujica |
最终得分 |
58 |
| 用户昵称 |
彭欣越 |
运行时间 |
5.738 s |
| 代码语言 |
C++ |
内存使用 |
12.58 MiB |
| 提交时间 |
2026-05-04 12:10:35 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1010;
int n,t;
ll a[N],b[N],dp[2][1010][1010];
int main () {
freopen("Mujica.in","r",stdin);
freopen("Mujica.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin >> n >> t;
for (int i=1;i<=n;i++) cin >> a[i];
for (int i=1;i<=n;i++) cin >> b[i];
for (int j=0;j<=t;j++) {
for (int k=0;k<=j;k++) {
dp[0][j][k]=1e18;
}
}
dp[0][0][0]=0;
for (int i=1;i<=n;i++) {
//cout << (i&1) <<endl;
for (int j=0;j<=t;j++) {
for (int k=0;k<=j;k++) {
dp[i&1][j][k]=1e18;
}
}
for (int j=0;j<=t;j++) {
for (int k=0;k<=j;k++) {
dp[i&1][j][k]=dp[(i-1)&1][j][k];
//cout << i <<' '<< j <<' '<< k <<' '<< dp[i&1][j][k] <<endl;
if (k>0) dp[i&1][j][k]=min(dp[i&1][j][k],dp[(i-1)&1][j][k-1]+b[i]);
//cout << i <<' '<< j <<' '<< k <<' '<< dp[i&1][j][k] <<endl;
if (j>0&&j!=k) dp[i&1][j][k]=min(dp[i&1][j][k],dp[(i-1)&1][j-1][k]+a[i]);
//cout << i <<' '<< j <<' '<< k <<' '<< dp[i&1][j][k] <<endl;
if (j>0&&k>0) dp[i&1][j][k]=min(dp[i&1][j][k],dp[(i-1)&1][j-1][k-1]+a[i]+b[i]);
//cout << i <<' '<< j <<' '<< k <<' '<< dp[i&1][j][k] <<endl;
}
}
}
cout << dp[n&1][t][t] <<endl;
return 0;
}