题目分析
每一个数都只有两种情况,使用和未使用,所以我们搜索一下就能搞定QAQ
(搜索剪枝)
C++ 代码
#include<iostream>
#include<algorithm>
using namespace std;
int ans=0;
int v[1000];
int n,m;
void dfs(int a,int b)
{
if(a>n||b>m)
return;
if(b==m)
{
ans++;
return;
}
dfs(a+1,b);
b+=v[a];
dfs(a+1,b);
}
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
cin>>v[i];
dfs(0,0);
cout << ans << endl;
return 0;
}