# TOJ 4108 Hearthstone

214人阅读 评论(0)

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;
}



0
0

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：59475次
• 积分：3593
• 等级：
• 排名：第9120名
• 原创：315篇
• 转载：3篇
• 译文：0篇
• 评论：4条
文章分类
阅读排行
最新评论