题解
2025-05-05 22:07:41
发布于:江苏
47阅读
0回复
0点赞
#include<iostream>
using namespace std;
int a[30];
bool flag[20000010];
void f(int first,int k,int sum,int m,int n){
if(k==m){
flag[sum]=1;
return ;
}
for(int i=first;i<n;i++){
f(i+1,k****um+a[i],m,n);
}
}
int main(){
int t;
cin>>t;
while(t--){
int n,m,cnt=0;
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<20000010;i++){
flag[i]=0;
}
f(0,0,0,m,n);
for(int i=0;i<=20000010;i++){
if(flag[i]!=0){
cnt++;
}
}
cout<<cnt<<'\n';
}
return 0;
}
这里空空如也
有帮助,赞一个