题目

这可算是描述很简单的一道题了!但是不简单。

\(S\)是一个可重集合,\(S = \{a_1, a_2, \dots, a_n \}\)。
等概率随机取\(S\)的一个子集\(A = \{a_{i_1}, \dots, a_{i_m}\}\)。
计算出\(A\)中所有元素异或\(x\), 求\(x^k\)的期望。

要点

要点 1

所有异或出来的不同结果的数量是同样多的(这句话可能有点不清楚)。
我的意思是说,假如异或出来的结果有\(5\)、\(3\)、\(4\),那么结果是\(5\)的异或方案数量是等于结果是\(3\)的异或方案数量的,也是等于结果是\(4\)的异或方案数量的。

除此之外,如果
设异或结果为\(0\)的子集(包括空集)数量为\(n\),那么如果异或出来的结果有\(x\),那么一定恰好有\(n\)种方案使得异或出来的结果是\(x\)。

要点 2 \(a_i\)的大小

设其大小为\(2^m-1\),说白了就是化成二进制后有多少位。

那么\[(2^m-1)^k \leqslant answer < 2^{63}\]
即\[2^{mk} \leqslant 2^{63}\]
就是\[m \leqslant \frac {63} {k}\]

算法

算法 1

根据要点1,很容易想到高斯消元。消元后直接暴力即可,不过这个时间复杂度是 \(O(2^m)\)。只能通过\(60 \%\)的数据。

算法 2

设\(P = \lbrace a_1, a_2, \dots, a_{2^n} \rbrace\),它的元素就是\(A\)中所有元素异或,所以它的大小为\(2^n\)。

那么答案为\[\frac {\sum_{i=1}^{2^n} {{a_i}^k}} {2^n}\]

由于\(a_i\)化成二进制后位数比较少,所以用\(b_{i,j}\)表示\(a_i\)化成二进制后的第\(j\)位。

那么答案可以写成\[\frac {\sum_{i=1}^{2^n} ({{\sum_{j=0}^{m} { b_{i,j} \cdot 2^j }}})^k} {2^n}\]

现在假设\(k=2\),有:\[\frac {\sum_{i=1}^{2^n} ({{\sum_{j=0}^{m} \sum_{p=0}^{m} {} { b_{i,j} \cdot b_{i,p} \cdot 2^{j+p} }}})} {2^n}\]

也就是:\[\sum_{j=0}^{m} \sum_{p=0}^{m}( \frac {\sum_{i=1}^{2^n} { b_{i,j} \cdot b_{i,p} }} {2^n}\cdot 2^{j+p})\]

对于\(\frac {\sum_{i=1}^{2^n} { b_{i,j} \cdot b_{i,p} }} {2^n}\),是可以在\(O(n)\)的时间复杂度内算出来的!如果\(j=p\),那么这个值为第\(j\)为\(1\)的概率,如果\(j\neq p\),那么这个值为第\(j\)和第\(p\)同时为\(1\)的概率,这个用一个迭代可以算出(根据要点1,算出最终所有可能出现的异或结果,这里的异或结果是指第\(j\)位和第\(p\),只有4种结果)。

当\(k \neq 2\)时,原理一样!

这样子,我们就可以在\(O(m^k \cdot (n + (2^k)^3))\)内算出\(answer\)了。

k m 总复杂度(估算)
1 63 63
2 31 61504
3 21 4741632
4 15 207360000
5 12 8153726976

好吧,你会发现迭代的时间复杂度有点高!事实上可以利用高斯消元后的独立数进行推导同时出现\(1\)的概率。

这样的话,时间复杂度就是\(O(m^k \cdot m)\)了。

清华集训2014 day1 task1 玛里苟斯的更多相关文章

  1. 清华集训2014 day2 task1 简单回路

    题目 如题. 算法 就是刚学习的插头DP. 从前往后和从后往前分别进行一次DP. 要点 合法的括号序列只有103个 如何合并两次dp的信息 一开始犯傻了,以为当且仅当两个轮廓线的状态相同才是合法的方案 ...

  2. 清华集训2014 day1 task2 主旋律

    题目 这可算是一道非常好的关于容斥原理的题了. 算法 好吧,这题我毫无思路,直接给正解. 首先,问题的正面不容易求,那么就求反面吧: 有多少种添加边的方案,使得这个图是DAG图(这里及以下所说的DAG ...

  3. 清华集训2014 day1 task3 奇数国

    题目 题目看起来好像很难的样子!其实不然,这是最简单的一道题. 算法 首先要注意的是: \(number \cdot x + product \cdot y = 1\) ,那么我们称\(number\ ...

  4. uoj 41 【清华集训2014】矩阵变换 婚姻稳定问题

    [清华集训2014]矩阵变换 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/41 Description 给出 ...

  5. AC日记——【清华集训2014】奇数国 uoj 38

    #38. [清华集训2014]奇数国 思路: 题目中的number与product不想冲: 即为number与product互素: 所以,求phi(product)即可: 除一个数等同于在模的意义下乘 ...

  6. UOJ#46. 【清华集训2014】玄学

    传送门 分析 清华集训真的不是人做的啊嘤嘤嘤 我们可以考虑按操作时间把每个操作存进线段树里 如果现在点x正好使一个整块区间的右端点则更新代表这个区间的点 我们不难发现一个区间会因为不同的操作被分成若干 ...

  7. 清华集训2014 sum

    清华集训2014sum 求\[∑_{i=1}^{n}(-1)^{⌊i√r⌋}\] 多组询问,\(n\leq 10^9,t\leq 10^4, r\leq 10^4\). 吼题解啊 具体已经讲得很详细了 ...

  8. 【bzoj3811】【清华集训2014】玛里苟斯

    3811: 玛里苟斯 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 500  Solved: 196[Submit][Status][Discuss] ...

  9. [UOJ]#36. 【清华集训2014】玛里苟斯

    题目大意:给n个数字,求子集的异或和的k次方的期望(n<=10^5,k<=5,保证答案小于2^63) 做法:首先如果从集合中拿出a和b,把a和a xor b放回集合,子集的异或和与原来是一 ...

随机推荐

  1. windows上的tomcat配置

    下载及安装 首先要安装JDK:jdk-7windows-x64.zip 再安装tomcat:apache-tomcat-7.0.23-windows-x64.zip   配置环境变量: CATALIN ...

  2. Hadoop平台安装前准备

    集群配置 准备工作 1.  Iptables #chkconfig iptables –list #chkconfig iptables –level 3456off #service iptable ...

  3. Linux网卡设置

    http://blog.chinaunix.net/uid-20149676-id-1733254.html

  4. JRebel 6 破解版及使用方法

    最近更新到jrebel6.2.1了,我自己做了个技术分享的微信公众号(茶爸爸),有心的朋友可以来这里一起学习 云盘下载链接: http://pan.baidu.com/s/1bnGzMUF 配置: - ...

  5. 基于visual Studio2013解决C语言竞赛题之0303最大数

     题目 解决代码及点评 这道题考察对条件分支和赋值的灵活应用 正常思维 如果 a>b and a>c 那么a最大 如果b>c and b>a 那么b最大 如果c>a ...

  6. 基于visual Studio2013解决C语言竞赛题之0205位数求和

     题目

  7. poj 3624 Charm Bracelet(区间dp)

    题目链接:http://poj.org/problem?id=3624 思路分析: 经典的0-1背包问题: 分析如下: 代码如下: #include <iostream> using na ...

  8. 【C语言学习】存储类型

    C语言中的存储类型主要有四种:auto.static.extern.register ★auto存储类型 默认的存储类型.在C语言中,假设忽略了变量的存储类型,那么编译器就会自己主动默认为auto型 ...

  9. Android 使用动态载入框架DL进行插件化开发

    如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456    (来自时之沙的csdn博客) 概述: 随着应用的不断迭代.应用的体积不断增大,项目越来越臃肿,冗余添 ...

  10. jQuery 之 $(this) 出了什么问题?

    近期在写jQuery的时候出了这样一个问题? <html> <head> <title></title> </head> <style ...