题解 | 小红的数组选数
小红的数组选数
https://www.nowcoder.com/practice/44aa435e9f7a4e13bb7f0a408295299a
//状压枚举解法
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,k;
cin>>n>>k;
vector<int>a(n+4);
for(int i = 1;i<=n;++i)
{
cin>>a[i];
}
int ans = 0;
for(int i = 1;i<(1<<n);++i)
{
int sum = 0;
for(int j = 0;j<n;++j)
{
if(i&(1<<j))
{
sum+=a[j+1];
}
if(sum>k)
{
break;
}
}
if(sum == k)
{
ans++;
}
}
cout<<ans<<'\n';
}
查看10道真题和解析