BZOJ3687 简单题 【bitset】
BZOJ3687 简单题
Description
小呆开始研究集合论了,他提出了关于一个数集四个问题:
1.子集的异或和的算术和。
2.子集的异或和的异或和。
3.子集的算术和的算术和。
4.子集的算术和的异或和。
目前为止,小呆已经解决了前三个问题,还剩下最后一个问题还没有解决,他决定把
这个问题交给你,未来的集训队队员来实现。
Input
第一行,一个整数n。
第二行,n个正整数,表示01,a2….,。
Output
一行,包含一个整数,表示所有子集和的异或和。
Sample Input
2
1 3
Sample Output
6
HINT
【样例解释】
6=1 异或 3 异或 (1+3)
【数据规模与约定】
ai>0,1<n<1000,∑ai≤2000000" role="presentation">ai>0,1<n<1000,∑ai≤2000000ai>0,1<n<1000,∑ai≤2000000。
我们发现在异或情况下,对于一个相同的数,出现奇数次为0,出现偶数次是原数,所以我们只需要统计一个数出现了奇数次还是偶数次,定义bitset第k位代表和为k的方案数是奇数还是偶数,我们发现,当新加入一个数t,新增相当于将bitset向右移动t位,再异或上原集就是当前集合,最后跑一遍判断每个数是否存在奇数次,是就在答案上异或
#include<bits/stdc++.h>
using namespace std;
#define N 2000010
bitset<N> s;
int ans=0,sum=0;
int main(){
int n;scanf("%d",&n);
s[0]=1;
for(int i=1;i<=n;i++){
int x;scanf("%d",&x);
s^=(s<<x);
sum+=x;
}
for(int i=1;i<=sum;i++)if(s[i])ans^=i;
printf("%d",ans);
return 0;
}
BZOJ3687 简单题 【bitset】的更多相关文章
- bzoj3687简单题*
bzoj3687简单题 题意: 给个集合,求所有子集的元素和的异或和.集合元素个数≤1000,整个集合的元素和≤2000000 题解: 用bitset维护每个子集元素和的个数是奇数还是偶数.每次读入一 ...
- [Bzoj3687]简单题(bitset)
3687: 简单题 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1150 Solved: 565[Submit][Status][Discuss] ...
- bzoj3687简单题(dp+bitset优化)
3687: 简单题 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 861 Solved: 399[Submit][Status][Discuss] ...
- BZOJ 3687: 简单题 bitset
3687: 简单题 Time Limit: 10 Sec Memory Limit: 512 MB[Submit][Status][Discuss] Description 小呆开始研究集合论了,他 ...
- BZOJ3687: 简单题(dp+bitset)
Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1138 Solved: 556[Submit][Status][Discuss] Descripti ...
- 算法复习——bitset(bzoj3687简单题)
题目: Description 小呆开始研究集合论了,他提出了关于一个数集四个问题:1.子集的异或和的算术和.2.子集的异或和的异或和.3.子集的算术和的算术和.4.子集的算术和的异或和. 目前 ...
- [bzoj 3687]简单题 bitset的运用
题意 给定一个正整数集,求所有子集算术和的异或和 题解 每次加入一个元素x,用原集合a xor (a<< x) 然后每一个值统计一下 bitset看起来很优越,是一个能位运算的布尔数组 ...
- BZOJ3687: 简单题
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3687 小呆开始研究集合论了,他提出了关于一个数集四个问题: 1.子集的异或和的算术和. 2.子 ...
- bzoj 3687 简单题——bitset
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3687 关于 bitset :https://blog.csdn.net/snowy_smil ...
随机推荐
- Asp.net mvc word预览与打印
解决方案: 1. 在后台把word文件转化成pdf,在前台用iframe显示pdf,打印iframe,即可. 优点:用户体验好. 缺点:不支持IE. 实现 : 引用netoffice组件 主要代码: ...
- quartz动态job工具类 serviceh注入问题
package com.heyi.yanglao.common.job.util; import cn.hutool.core.date.DateUtil; import lombok.extern. ...
- tp5---树形菜单
composer require bluem/tree
- 公众号菜单中的click
$params = [ 'button' => [ [ 'type'=>'click', 'name'=>'就送帽子', 'key'=>'V1001_PRESENT', ], ...
- 用cookies判断用户首次登录
要求:判断24小时内用户是否是首次登录,如果是则显示弹窗,如果不是则不再显示弹窗 (function() { //是否是新访客 function isNewVisitor() { //从cookie读 ...
- Memcached delete 命令
Memcached delete 命令用于删除已存在的 key(键). 语法: delete 命令的基本语法格式如下: delete key [noreply] 多个 key 使用空格隔开,如下: d ...
- Python中 如何使用telnet 检测端口是否通
import tn=telnetlib.Telnet(host,port)不报异常则该端口是通的,可结合try进行使用
- win32调用系统颜色对话框
参考网站:http://blog.csdn.net/u013242177/article/details/50437358 首先要包含commdlg.h头文件,这个是通用对话框的头文件,包括文件对话框 ...
- maven-surefire-plugin的forkMode分析
Maven运行测试用例时,是通过调用maven的surefire插件并fork一个子进程来执行用例的.forkmode属性中指明是要为每个测试创建一个进程,还是所有测试在同一个进程中完成. <p ...
- LeetCode OJ:Search in Rotated Sorted Array(翻转排序数组的查找)
Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...