# TOJ 4108 Hearthstone

Use 0-1 backpack algorithm can solve this problem . But I use DFS.

I misunderstanding the problem's meaning.My algorithm is Wrong.But the test data is so weak that I can pass this problem.

The portal:4108. Hearthstone 4108. Hearthstone

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>

int monsters[20];
int magic[105];
int N,M,A,B,min_sum;

void DFS(int depth,int sum){
if(depth>N)return ;
if(sum >= B){
if(sum < min_sum){
min_sum = sum;
}
return ;
}
DFS(depth+1,sum+monsters[depth]);
DFS(depth+1,sum);
}

void Find_Mincost(int value){
min_sum = 10000000;
DFS(0,0);
//printf("%d\n",min_sum);
}

void Deal_with(){
int T;
scanf("%d",&T);
while(T--){
scanf("%d %d %d %d",&N,&M,&A,&B);
int sum_monsters = 0;
for(int i=0;i<N;i++){
scanf("%d",monsters+i);
sum_monsters += monsters[i];
}
int sum_magic = 0;
for(int i=0;i<M;i++){
scanf("%d",magic+i);
sum_magic += magic[i];
}
Find_Mincost(B);
if(min_sum == 10000000)min_sum = sum_monsters;
int ans = sum_monsters - min_sum + sum_magic;
//printf("%d",min_sum);
if(ans < A){
}
else {
puts("wellplay");
}
}
}

int main(void){
freopen("a.in","r",stdin);
Deal_with();
return 0;
}



• 本文已收录于以下专栏：

举报原因： 您举报文章：TOJ 4108 Hearthstone 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)