dfs+剪枝
#include <iostream>
using namespace std;
bool visit[1005]={
false};
int ans=0;
int n,mon;
int w[1005];///菜品价格
int cnt1=0,cnt=0;
///01背包用搜索解决,每个东西只能选一次,注意index的使用!!!
void dfs(int money,int index)
{
if(money==mon){
ans++; return;}
if(money>mon) return;
///从第index道菜开始选,例如有1 2 3 4 4道菜,1与2,3,4排列组合了,之后就不选1了,2与3,4排列组合
for(int i=