[UOJ]#36. 【清华集训2014】玛里苟斯
题目大意:给n个数字,求子集的异或和的k次方的期望(n<=10^5,k<=5,保证答案小于2^63)
做法:首先如果从集合中拿出a和b,把a和a xor b放回集合,子集的异或和与原来是一一对应的,用高斯消元的思想可以消到只剩log个数,其他都是0,对答案没有影响。然后考虑k次方的期望,我们把二进制下每一位拆开,假设第i位的数字为xi,答案为(x1+x2+...+xlog)^k的期望,展开式子后发现是选k次x1~xlog中的数(可以重复选),每种选法选的位的乘积的期望的和,暴力枚举每种选法,复杂度为log^k(显然在k比较大时,由于答案范围限制,log不会太大,所以复杂度可以接受),一种选法只有选出的位都为1才对答案有贡献,列出方程然后高斯消元计算合法方案,每种方案的贡献必然是2的次幂并且幂数最小为-1,运算时直接记是多少次幂,算完再乘个2加入答案,最后判是否是奇数输出.5即可。
代码:
- #include<cstdio>
- #include<cstring>
- #define ll unsigned long long
- ll read()
- {
- ll x;char c;
- while((c=getchar())<''||c>'');
- for(x=c-'';(c=getchar())>=''&&c<='';)x=x*+c-'';
- return x;
- }
- ll z[],ans;
- int mx,k,a[],t[];
- void dfs(int x)
- {
- if(x==k)
- {
- int i,j,x,s=;
- memset(t,,sizeof(t));
- for(i=;i<=mx;++i)if(z[i])
- {
- for(x=j=;j<k;++j)x|=int(bool(z[i]&(1ULL<<a[j])))<<j;
- for(j=k;j--;)if(x&(<<j))t[j]?:(t[j]=x,--s),x^=t[j];
- }
- for(x=(<<k)-,i=k;i--;s+=a[i])if(x&(<<i))x^=t[i];
- if(!x)ans+=1ULL<<s;
- return;
- }
- for(int i=;i<=mx;++i)a[x]=i,dfs(x+);
- }
- int main()
- {
- int n,i;
- n=read();k=read();
- while(n--)
- {
- ll x=read();
- for(i=;i--;)if(x&(1ULL<<i))z[i]?:z[i]=x,x^=z[i];
- }
- for(mx=;mx--;)if(z[mx])break;
- dfs();
- printf("%lld%s",ans>>,ans&?".5":"");
- }
[UOJ]#36. 【清华集训2014】玛里苟斯的更多相关文章
- uoj #46[清华集训2014]玄学
uoj 因为询问是关于一段连续区间内的操作的,所以对操作构建线段树,这里每个点维护若干个不交的区间,每个区间\((l,r,a,b)\)表示区间\([l,r]\)内的数要变成\(ax+b\) 每次把新操 ...
- UOJ.41.[清华集训2014]矩阵变换(稳定婚姻)
题目链接 稳定婚姻问题:有n个男生n个女生,每个男/女生对每个女/男生有一个不同的喜爱程度.给每个人选择配偶. 若不存在 x,y未匹配,且x喜欢y胜过喜欢x当前的配偶,y喜欢x也胜过y当前的配偶 的完 ...
- bzoj 3816&&uoj #41. [清华集训2014]矩阵变换
稳定婚姻问题: 有n个男生,n个女生,所有女生在每个男生眼里有个排名,反之一样. 将男生和女生两两配对,保证不会出现婚姻不稳定的问题. 即A-1,B-2 而A更喜欢2,2更喜欢A. 算法流程: 每次男 ...
- uoj 41 【清华集训2014】矩阵变换 婚姻稳定问题
[清华集训2014]矩阵变换 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/41 Description 给出 ...
- AC日记——【清华集训2014】奇数国 uoj 38
#38. [清华集训2014]奇数国 思路: 题目中的number与product不想冲: 即为number与product互素: 所以,求phi(product)即可: 除一个数等同于在模的意义下乘 ...
- [UOJ#274][清华集训2016]温暖会指引我们前行
[UOJ#274][清华集训2016]温暖会指引我们前行 试题描述 寒冬又一次肆虐了北国大地 无情的北风穿透了人们御寒的衣物 可怜虫们在冬夜中发出无助的哀嚎 “冻死宝宝了!” 这时 远处的天边出现了一 ...
- UOJ #36「清华集训2014」玛里苟斯
这怎么想得到啊......... UOJ #36 题意:求随机一个集合的子集的异或和的$k$次方的期望值,保证答案$ \lt 2^{63},1 \leq k \leq 5$ $ Solution:$ ...
- UOJ#46. 【清华集训2014】玄学
传送门 分析 清华集训真的不是人做的啊嘤嘤嘤 我们可以考虑按操作时间把每个操作存进线段树里 如果现在点x正好使一个整块区间的右端点则更新代表这个区间的点 我们不难发现一个区间会因为不同的操作被分成若干 ...
- 清华集训2014 sum
清华集训2014sum 求\[∑_{i=1}^{n}(-1)^{⌊i√r⌋}\] 多组询问,\(n\leq 10^9,t\leq 10^4, r\leq 10^4\). 吼题解啊 具体已经讲得很详细了 ...
- UOJ #36 -【清华集训2014】玛里苟斯(线性基+暴搜)
UOJ 题面传送门 看到 \(k\) 次方的期望可以很自然地想到利用低次方和维护高次方和的套路进行处理,不过.由于这里的 \(k\) 达到 \(5\),直接这么处理一来繁琐,二来会爆 long lon ...
随机推荐
- C语言第二次博客作业——分支结构
一.PTA实验作业 题目1:计算分段函数 1.实验代码 #include<stdio.h> #include<math.h> int main(void) { double x ...
- The sum of numbers form 0 to n.(20.9.2017)
#include <stdio.h> int main() { int a,b,sum; printf("输入一个数字: "); scanf("%d" ...
- 《Language Implementation Patterns》之 符号表
前面的章节我们学会了如何解析语言.构建AST,如何访问重写AST,有了这些基础,我们可以开始进行"语义分析"了. 在分析语义的一个基本方面是要追踪"符号",符号 ...
- vue.js下载及安装配置
环境 Deepin15.4 下载及配置 node下载地址:http://nodejs.cn/download/ 解压到文件夹 /home/maskerk/vue/ 下 设置软连接: $ ln -s / ...
- Flask 扩展 缓存
如果同一个请求会被多次调用,每次调用都会消耗很多资源,并且每次返回的内容都相同,就该使用缓存了 自定义缓存装饰器 在使用Flask-Cache扩展实现缓存功能之前,我们先来自己写个视图缓存装饰器,方便 ...
- 关于webService发布的wsdl中的import问题解决
大家都知道jdk1.6及以后都支持了对webService的原生态的支持:它在发布时会生成一个wsdl和一个xsd(一个类只生成一个xsd)所以就保留了引用关系,如下: <?xml versio ...
- Hibernate之深入Hibernate的映射文件
这周周末 要把hibernate的映射文件搞定 .. 1.映射文件的主结构 主要结构 :根元素为<hibernate-mapping ></hibernate-mapping> ...
- 第二章 Idea搭建maven
第二章 Idea搭建maven 1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME(MAVEN_HOME)的环境变量,然后 ...
- 新概念英语(1-111)The most expensive model
Lesson 111 The most expensive model 最昂贵的型号 Listen to the tape then answer this question. Can Mr. Fri ...
- 新概念英语(1-29)Come in, Amy.
How must Amy clean the floor? A:Come in, Amy. Shut the door, please. This bedroom's very untidy. B:W ...