bzoj 3687 bitset的运用
题目大意:
小呆开始研究集合论了,他提出了关于一个数集四个问题:
1. 子集的异或和的算术和。
2. 子集的异或和的异或和。
3. 子集的算术和的算术和。
4. 子集的算术和的异或和。
目前为止,小呆已经解决了前三个问题,还剩下最后一个问题还没有解决,他决定把
这个问题交给你,未来的集训队队员来实现。
【输入格式】
从 xor.in 中输入数据
第一行,一个整数 n。
第二行,n 个正整数,表示 a1, a2, …, an
【输出格式】
输出到 xor.out 中
一行,包含一个整数,表示所有子集和的异或和。
【样例输入】
2
1 3
【样例输出】
6
【样例解释】
6 = 1 ⊗ 3 ⊗ (1 + 3)
【数据规模与约定】
数据分为 A,B,C 三类。
A 类数据 (20%) 保证:ai > 0,1 ≤ n ≤ 10。
B 类数据 (40%) 保证:ai > 0,1 ≤ n ≤ 1000,
∑ ai ≤ 10000。
C 类数据 (40%) 保证:ai > 0,1 ≤ n ≤ 1000,
∑ ai ≤ 2000000。
另外,不保证集合中的数满足互异性,即有可能出现 ai = aj 且 i ̸= j。
这里保证不超过2000000,可以利用每一位代表是否存在奇数个异或值
#include <iostream>
#include <bitset>
#include <cstdlib>
#include <ctime>
#include <cstdio>
#include <cmath>
using namespace std; bitset<> bt;
void solve()
{
// freopen("in.txt" , "r" , stdin);
int n;
scanf("%d" , &n);
bt[] = ;
int sum = ;
while(n--)
{
int u ;
scanf("%d" , &u);
sum += u;
bt ^= bt<<u;
}
int ret = ;
for(int i= ; i<=sum ; i++){
if(bt[i]) {
ret ^= i;
}
}
printf("%d\n" , ret);
} int main()
{
solve();
}
bzoj 3687 bitset的运用的更多相关文章
- BZOJ 3687: 简单题 bitset
3687: 简单题 Time Limit: 10 Sec Memory Limit: 512 MB[Submit][Status][Discuss] Description 小呆开始研究集合论了,他 ...
- bzoj 3687 简单题——bitset
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3687 关于 bitset :https://blog.csdn.net/snowy_smil ...
- [bzoj 3687]简单题 bitset的运用
题意 给定一个正整数集,求所有子集算术和的异或和 题解 每次加入一个元素x,用原集合a xor (a<< x) 然后每一个值统计一下 bitset看起来很优越,是一个能位运算的布尔数组 ...
- BZOJ 3687: 简单题(dp+bitset)
传送门 解题思路 设\(f(i)\)表示和为\(i\)时的方案数,那么转移方程为\(f(i)+=f(i-x)\),\(x\)为当前枚举到的数字,这样做是\(O(n\sum a_i)\)的,考虑优化.发 ...
- BZOJ 3687 简单题
bitset维护某个和是否存在. bit<<x:所有子集的和+x. #include<iostream> #include<cstdio> #include< ...
- 大杀器Bitset
其实并不怎么会用,有一次有位学长提到了这个名字,就这么取题目了. 1.BZOJ 3687 简单题 求子集的算术和的异或和 http://www.lydsy.com/JudgeOnline/proble ...
- bzoj题目分类
转载于http://blog.csdn.net/creationaugust/article/details/513876231000:A+B 1001:平面图最小割,转对偶图最短路 1002:矩阵树 ...
- bzoj 4810 由乃的玉米田 - bitset - 莫队算法
由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美.这排玉米一共有N株,它们的高度参差不齐. 由乃认为玉米田不美,所以她决定出个数据结构题 这个题是这样的: 给你一个序列a,长度为n,有m ...
- BZOJ.4939.[Ynoi2016]掉进兔子洞(莫队 bitset 分组询问)
BZOJ 洛谷 删掉的数即三个区间数的并,想到bitset:查多个区间的数,想到莫队. 考虑bitset的每一位如何对应每个数的不同出现次数.只要离散化后不去重,每次记录time就可以了. 但是如果对 ...
随机推荐
- mac homebrew PHP
启动PHP p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "Andale Mono"; color: #29f914; ...
- pl/sql developer执行光标所在行
一.发现问题 需要执行某一行语句时,需要选中该行语句,点击F8才行. 二.解决问题 中文版:工具->首选项->SQL窗口->自动选择语句 英文版:tools->preferen ...
- Sqlserver_时间用法
函数 描述 GETDATE() 返回当前的日期和时间 DATEPART() 返回日期/时间的单独部分 DATEADD() 在日期中添加或减去指定的时间间隔 DATEDIFF() 返回两个日期之间的时间 ...
- djangoadmin导出csv
from django.contrib import admin from .models import Order,OrderItem from django.http import HttpRes ...
- python网络编程socket之多进程
#coding:utf-8 __author__ = 'similarface' import os,socket,threading,SocketServer SERVER_HOST='localh ...
- LinuxShell脚本攻略--第八章 当个好管家
监视磁盘的使用情况 $ du file1.txt file2.txt $ du -a file_or_dir #-a递归输出指定目录的所有文件统计 $ du file_or_dir #这只是显示子目录 ...
- C++疑难杂症
1.如果在类成员函数外部显示的调用其父类的某个接口. 2.对于一个父类的成员, 子类如何在构造函数中对其进行特殊的定制生成. 3.对于一个需要用常量来声明的类型, 如何定义这个常量. 比如int ...
- jq实现全选非全选
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- spring3-hibernate3整合
Spring与Hibernate整合关键点: 1) Hibernate的SessionFactory对象交给Spring创建: 2) hibernate事务交给spring的声明式事务管理. SH整合 ...
- Linux基础:Grep查询&AWK查询
Grep:搜索文件内匹配指定内容的行 常用的Grep搜索方法: 1. grep "普通搜索内容" file( 或者 cat file|grep "普通搜索内容" ...