标签:条件 统计 还需 span 数据 计数 namespace 是什么 for
#include <cstdio>
#include <map>
#include <iostream>
using namespace std;
typedef long long ll;
map <int , ll > ma;
ll read() {
ll x=0,f=1;char c=getchar();
while(c<'0'||c>'9') {
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9') {
x=x*10+c-'0';
c=getchar();
}
return x*f;
}
int key ,n,mid;
int a[50];
void dfs1(int now,int k) {
if(now == mid + 1) {
ma[k]++;
return;
}
dfs1(now + 1,k - a[now]);
dfs1(now + 1,k);
}
ll dfs2(int now,int k) {
if(now == mid)
return ma[key - k];
ll ans = 0;
ans += dfs2(now - 1,k - a[now]);
ans += dfs2(now - 1, k);
return ans;
}
int main() {
n = read(),key = read();
mid = n>>1;
for(int i = 1;i <= n;++i)
a[i] = read();
dfs1(1,key);
cout<<dfs2(n,key);
return 0;
}
标签:条件 统计 还需 span 数据 计数 namespace 是什么 for
原文地址:https://www.cnblogs.com/wxyww/p/9798730.html