【bzoj3687】 简单题 bitset
2015-07-18 19:49
316 查看
用这道题学一下bitset,感觉没什么大用处其实就相当于一个布尔数组,可以快速左移右移,再就没大有别的用处了吧,不明觉厉。这道题f[i]表示和为i的集合个数为奇数还是偶数,f<<x表示f集合加上x后的集合,每次加入一个数,就用原集合异或一下这个集合就可以了。
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> #include<bitset> #define maxn 2000010 using namespace std; int n; long long ans; bitset<maxn> f; int main() { scanf("%d",&n); f[0]=1; for (int i=1;i<=n;i++) { int x; scanf("%d",&x); f=f^(f<<x); } for (int i=1;i<=2000000;i++) if (f[i]) ans^=i; printf("%lld\n",ans); return 0; }
相关文章推荐
- 左外连接、右外连接、内连接、全连接
- Unity3D使用腾讯广点通广告
- 算法之递推思想
- MJRefresh下拉刷新框架使用
- [MAC使用] rz sz 命令
- java线程同步
- [HNOI2001][BZOJ1221] 软件开发
- 根据flat.vmdk文件恢复磁盘(完善版)
- 字符串创建和存储机制2
- 微信开发之使用第三方图文编辑器
- 房费制——报表(1)
- 分布式数据库架构一例
- ubuntu以root权限界面操作文件
- 字符串创建和存储机制1
- ValueError: bad transparency mask
- eclipse的.properties文件中文显示问题
- AngularJS(一)
- ValueError: bad transparency mask 分类: 小技巧 软件插件学习 2015-07-18 19:42 27人阅读 评论(0) 收藏
- 尼玛滴假慈悲!.
- Java学习之路0718(五)