【JZOJ2108】买装备【dfs】
题目大意:
题目链接:https://jzoj.net/junior/#main/show/2108
有个物品,每个物品有两种元素,选择若干个物品使得。
思路:
这**题背包确实可以做,但是的数据为什么不打搜索呢?
就是一个简单的爆搜,简单到不能再简单了。。。
代码:
#include <cstdio>
using namespace std;
const int N=30;
int n,A,B,a[N],b[N],w[N],ans=2e9;
void dfs(int x,int suma,int sumb,int m)
{
if (x>n)
{
if (suma>=A&&sumb>=B&&m<ans)
ans=m;
return;
}
dfs(x+1,suma+a[x],sumb+b[x],m+w[x]);
dfs(x+1,suma,sumb,m);
}
int main()
{
scanf("%d%d%d",&A,&B,&n);
for (int i=1;i<=n;i++)
scanf("%d%d%d",&a[i],&b[i],&w[i]);
dfs(1,0,0,0);
printf("%d",ans);
return 0;
}