题意:

魔法之龙玛里苟斯最近在为加基森拍卖师的削弱而感到伤心,于是他想了一道数学题。
SSS 是一个可重集合,S=a1,a2,…,anS={a1,a2,…,an}S=a1,a2,…,an。
等概率随机取 S 的一个子集 A=ai1,…,aimA={ai1,…,aim}A=ai1,…,aim。
计算出 AAA 中所有元素异或 xxx, 求 xkx^kxk 的期望。

题解:

tyb
code:

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#define LL unsigned long long
using namespace std;
bool c[65];
LL n,k,a[100010],cnt=0;
LL b[65],t,a1=0,a2=0;
void dfs(LL x,LL v)
{if(x>22){if(k==3) a2+=v*v*v;if(k==4){a1+=(v*v/t)*v*v;a1+=(v*v%t*v*v/t);a2+=v*v%t*v%t*v%t;}if(k==5){a1+=(v*v*v/t)*v*v;a1+=(v*v*v%t*v*v/t);a2+=v*v%t*v%t*v%t*v%t;}a1+=a2/t;a2%=t;return;}dfs(x+1,v);if(b[x]) dfs(x+1,v^b[x]);
}
LL ans=0;
int main()
{scanf("%llu %llu",&n,&k);memset(c,false,sizeof(c));for(LL i=1;i<=n;i++) scanf("%llu",&a[i]);for(LL i=1;i<=n;i++)for(LL j=0;j<=63;j++) if(((LL)1<<j)&a[i]) c[j]=true;if(k==1){for(LL i=0;i<=63;i++) if(c[i]) ans+=(LL)1<<i;printf("%llu",ans/2);if(ans&1) printf(".5");}else if(k==2){for(LL i=0;i<=63;i++)if(c[i]){for(LL j=i+1;j<=63;j++)if(c[j]){bool flag=true;for(LL l=1;l<=n;l++)if(((a[l]>>i)&1)!=((a[l]>>j)&1)) {flag=false;break;}if(flag) ans+=(1LL<<(i+j+1));else ans+=(1LL<<(i+j));}}for(LL i=0;i<=63;i++) if(c[i]) ans+=(1LL<<(i*2));printf("%llu",ans/2);if(ans&1) printf(".5");}else{for(LL i=1;i<=n;i++){LL x=a[i];for(LL j=63;j>=0;j--){if((1LL<<j)&x){if(!b[j]) {b[j]=x;cnt++;break;}x^=b[j];}if(j==0) break;}}t=1LL<<cnt;dfs(0,0);printf("%llu",a1);if(a2) printf(".5");}
}

[UOJ]#36. 【清华集训2014】玛里苟斯 线性基+分类讨论相关推荐

  1. [BZOJ3811][UOJ#36][清华集训2014]玛里苟斯(期望 + 线性基)

    Address BZOJ 3811 UOJ #36 Solution 看到异或,首先想到拆位 下面 xor ( A ) \text{xor}(A) xor(A) 表示子集 A A A 的异或和, b ...

  2. [清华集训2014]玛里苟斯(线性基+概率期望)

    首先有一些前置引理: 1. 由期望的线性性,平方的期望不等于期望的平方,所以求k次方的期望时,需要记录1~k-1的期望,然后计算增量(OSU!),这个这题没用上. 2. 线性基是可以变成每位只在一个元 ...

  3. 清华集训2014 玛里苟斯

    清华集训2014 玛里苟斯 求子集异或和k次方的期望. 异或考虑按位算贡献. 对于\(K=1\),考虑异或和\(\frac{x}{2}\)就是答案. 证明简单来说就是,你可以先打一个概率\(dp\)分 ...

  4. [清华集训2014]玛里苟斯

    一.题目 点此看题 二.解法 注意到答案是2632^{63}263次方,可以分kkk来讨论: k=1k=1k=1,求出所有值或起来的值,每一位有12\frac{1}{2}21​的概率有贡献,所以把这个 ...

  5. 【清华集训 2014】玛里苟斯(组合计数 + 线性基)

    题目链接:[清华集训 2014]玛里苟斯 推荐博客:[BZOJ 3811]玛里苟斯:线性基(详细证明) 首先想到将kkk分类讨论. k=1" role="presentation& ...

  6. 玛里苟斯[清华集训2014 Day1]

    玛里苟斯[清华集训2014 Day1] 魔法之龙玛里苟斯最近在为加基森拍卖师的削弱而感到伤心,于是他想了一道数学题. S 是一个可重集合,S={a1,a2,-,an}. 等概率随机取 S 的一个子集  ...

  7. 【清华集训2014】Sum)(类欧几里得算法)

    [清华集训2014]Sum 然后本质上我们需要求解的就是那个带根号式子的奇偶性,然后我们发现这个式子很像是类欧几里得算法,求解一个斜率为无理数直线下的整点个数,然后我们直接对于一般形式求解,那么就是每 ...

  8. uoj#36. 【清华集训2014】玛里苟斯(线性基+概率期望)

    传送门 为啥在我看来完全不知道为什么的在大佬们看来全都是显然-- 考虑\(k=1\)的情况,如果序列中有某一个\(a_j\)的第\(i\)位为\(1\),那么\(x\)的第\(i\)位为\(1\)的概 ...

  9. 【清华集训2014】玛里苟斯(数学 线性基)

    original link - http://uoj.ac/problem/36 题意: 有一个多重集S={a1,a2,...an}S=\{a_1,a_2,...a_n\}S={a1​,a2​,... ...

最新文章

  1. NC:潮湿的墙体和家具中微生物迅速增长!
  2. linux+输出分页,是否可以在zsh中自动分页输出?
  3. 【408预推免复习】操作系统之存储器管理
  4. 输入两个整数a和b,计算a+b的和
  5. Tomcat中配置多个端口
  6. golang辟谣之模板编程
  7. 深入分析Php处理浮点数的问题
  8. 16-djongo中间件学习
  9. 计算机网络--接入互联网方式
  10. mysql cluster安装报错
  11. debug使用方法(概念篇)
  12. 江苏小高考计算机什么时候考,2021江苏小高考时间 什么时候考试
  13. js实现html转图片保存
  14. Hazelcast Jet Processor
  15. VOS为何会产生计费偏差,应该如何防范
  16. SkeyeVSS实现RTSP、Onvif监控摄像头网页无插件化直播监控解决方案
  17. js 中文汉字按拼音排序,浏览器英文环境也可正确运行
  18. 阿里jquery的ajax迁移fetch,你不需要jQuery(三):新AJAX方法fetch()
  19. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ② 如何实现 微信小程序蓝牙控制 Ble Mesh模组 安信可TB02,全部开源!
  20. 神州泰岳和北大方正参观总结

热门文章

  1. 《欢乐颂2》狗血的剧情才是生活该有的模样
  2. PaaS,BLT模型中的一部分
  3. make_unique的使用
  4. 年前人间尤物,年后惨不忍睹
  5. Modbus对接 - Java
  6. ios挂载 yum源配置
  7. C++实现高斯坐标的正反算
  8. 安装design compiler的教程
  9. 华为hcie认证体系华为华为hcie认证价值NSR不间断路由思科华为网工常备知识点解析ie-lab
  10. Ubuntu的商业模式