总感觉01比dfs好写...
2024-06-01 19:55:31
发布于:北京
59阅读
0回复
0点赞
背包的容量是总时间的一半,因为左右两个大脑消耗的时间最好各是总时间的一半。
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int add,s;
int n[5],v[25],dp[605];
int main(){
for(int i=1;i<=4;i++) cin>>n[i];
for(int i=1;i<=4;i++){
add=0;
for(int j=1;j<=n[i];j++){
cin>>v[j];
add+=v[j];
}
memset(dp,0,sizeof(dp));
for(int j=1;j<=n[i];j++)
for(int k=add/2;k>=v[j];k--)
dp[k]=max(dp[k],dp[k-v[j]]+v[j]);
s+=add-dp[add/2];
}
cout<<s;
return 0;
}
这里空空如也
有帮助,赞一个