用户输出
1
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#100741 | #1086. jwp的幸运集合 | Accepted | 100 | 141 ms | 1024 K | C++ / 2.4 K | XJTUXXX | 2023-09-07 18:22:44 |
#include <bits/stdc++.h>
#include <map>
using namespace std;
typedef long long ll;
int main() {
cin.sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
int nums[n];
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
map<int, ll> jmp;
map<int, ll> omp;
int mid = n / 2;
int else_ = n - mid;
for (ll mask = 0, tot = 1 << mid; mask < tot; mask++) {
int sum = 0; //子集和
ll count = 0; //子集元素个数
for (int i = 0; i < mid; i++) {
if ((mask >> i) & 1) {
sum += nums[i];
count++;
}
}
if (count % 2 == 0) {
// map<int,ll>::iterator iter=omp.find(sum);
// if(iter!=omp.end()){
// omp[sum]=omp[sum]+1;
// }else{
// omp[sum]=1;
// }
omp[sum]++;
} else {
// map<int,ll>::iterator iter=jmp.find(sum);
// if(iter!=jmp.end()){
// jmp[sum]=jmp[sum]+1;
// }else{
// jmp[sum]=1;
// }
jmp[sum]++;
}
// cout<<"sum:"<<sum<<" count:"<<count<<"奇偶:"<<(count%2?"奇数个":"偶数个")<<endl;
}
// cout<<"奇数"<<endl;
// for(auto it:jmp){
// cout<<"子集和:"<<it.first<<" 子集个数:"<<it.second<<endl;
// }
// cout<<"偶数"<<endl;
// for(auto it:omp){
// cout<<"子集和:"<<it.first<<" 子集 个数:"<<it.second<<endl;
// }
// cout<<"------------------"<<endl;
ll ans = 0;
for (ll mask = 0, tot = 1 << else_; mask < tot; mask++) {
int sum = 0;
ll count = 0;
for (int i = 0; i < else_; i++) {
if ((mask >> i) & 1) {
sum += nums[i + mid];
count++;
}
}
if (count % 2 == 0) {
// map<int,ll>::iterator iter=omp.find(-sum);
// if(iter!=omp.end()){
// ans=ans+omp[-sum];
// }
if (omp[-sum] != 0)
ans += omp[-sum];
} else {
// map<int,ll>::iterator iter=jmp.find(-sum);
// if(iter!=jmp.end()){
// ans=ans+jmp[-sum];
// }
if (jmp[-sum] != 0)
ans += jmp[-sum];
}
// cout<<"sum:"<<sum<<" count:"<<count<<"奇偶:"<<(count%2?"奇数个":"偶数个")<<endl;
}
cout << ans - 1 << endl;
return 0;
}
31
749 349 69 -880 282 -926 -831 225 988 552 -193 634 369 476 204 487 387 -803 -370 -975 -17 -485 3
<40 bytes omitted>
用户输出
260459
系统信息
Exited with return code 0
31
362 -14 -181 -465 -400 -232 26 963 70 728 -728 -222 -510 854 139 386 555 994 103 279 213 76 953
<36 bytes omitted>
用户输出
81861
系统信息
Exited with return code 0
用户输出
16383
系统信息
Exited with return code 0