[清华集训2015 Day1]玛里苟斯-[线性基]
Description
Solution
考虑k=1的情况。假设所有数中,第i位为1的数的个数为x,则最后所有的子集异或结果中,第i位为1的个数为$(C_{k}^{1}+C_{k}^{3}+...)$*2原本的数中第i位为0的数的个数。同理,所有子集异或结果中第i位为0的个数为$(C_{k}^{0}+C_{k}^{2}+...)$*2原本的数中第i位为0的数的个数。
由于二项式定理,可得前后两个式子大小相等。即对于每一位i,如果该位有某个(些)数为1,ans+=10i-1/2。
k=2同理。
对于k>2,我们发现假如某个数能够由其他若干个数异或而得,那么把这个数删掉对答案没有影响。可以用线性基。
Code
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; const int N=1e5+10; typedef unsigned long long ull; int n,k,R;ull a[N]; ull b[30];int cnt; ull _ans,_res; void dfs(int x,ull c) {if (x==cnt+1){ull num=0,yu=1;for (int i=1;i<=k;i++){num*=c;yu*=c;num+=yu>>cnt;yu&=R;}_res+=yu;_ans+=num+(_res>>cnt);_res&=R;return;}dfs(x+1,c);dfs(x+1,c^b[x]); } int main() {scanf("%d%d",&n,&k);for (int i=1;i<=n;i++) scanf("%llu",&a[i]);if (k==1){ull t=0;for (int i=1;i<=n;i++) t|=a[i];printf("%llu%s",t>>1,t&1?".5":0);return 0;}if (k==2){ull t=0,ans=0;for (int i=1;i<=n;i++) t|=a[i];for (int i=0;i<32;i++) for (int j=i;j<32;j++)if (t>>i&&t>>j) ans+=1ull<<(i+j);printf("%llu%s",ans>>1,ans&1?".5":0);return 0; }ull t[30];memset(t,0,sizeof(t));for (int i=1;i<=n;i++)for (int j=21;j>=0;j--){if (a[i]&(1<<j)) if (!t[j]) {t[j]=a[i];break;} a[i]^=t[j]; }for (int i=0;i<=21;i++) if (t[i]) b[++cnt]=t[i];R=(1<<cnt)-1;dfs(1,0);if (_res) printf("%llu.5",_ans);else printf("%llu",_ans); }
转载于:https://www.cnblogs.com/coco-night/p/9748177.html
[清华集训2015 Day1]玛里苟斯-[线性基]相关推荐
- [UOJ]#36. 【清华集训2014】玛里苟斯 线性基+分类讨论
题意: 魔法之龙玛里苟斯最近在为加基森拍卖师的削弱而感到伤心,于是他想了一道数学题. SSS 是一个可重集合,S=a1,a2,-,anS={a1,a2,-,an}S=a1,a2,-,an. 等概率随机 ...
- 【BZOJ3811】【清华集训2015】玛里苟斯(线性基)
传送门 解析: 还是挺好想的,首先对于k=1的情况,如果某一个数在这一位上有1,那么最终结果中这一位为1的概率就是0.5. 有一个很显然的性质,所有异或结果出现概率(或者说方案数)相同. 其次,对于k ...
- 【清华集训 2014】玛里苟斯(组合计数 + 线性基)
题目链接:[清华集训 2014]玛里苟斯 推荐博客:[BZOJ 3811]玛里苟斯:线性基(详细证明) 首先想到将kkk分类讨论. k=1" role="presentation& ...
- 玛里苟斯[清华集训2014 Day1]
玛里苟斯[清华集训2014 Day1] 魔法之龙玛里苟斯最近在为加基森拍卖师的削弱而感到伤心,于是他想了一道数学题. S 是一个可重集合,S={a1,a2,-,an}. 等概率随机取 S 的一个子集 ...
- 【地狱副本】数据结构之线段树Ⅲ——区间最值/赋值/修改/历史值操作(HDU5306,Tyvj 1518,【清华集训2015】V,HDU6315,HDU1828,POJ3162)
文章目录 Gorgeous Sequence Tyvj 1518 CPU监控 [清华集训2015]V Naive Operations Picture Walking Race Gorgeous Se ...
- 【清华集训2014】玛里苟斯(数学 线性基)
original link - http://uoj.ac/problem/36 题意: 有一个多重集S={a1,a2,...an}S=\{a_1,a_2,...a_n\}S={a1,a2,... ...
- uoj#36. 【清华集训2014】玛里苟斯(线性基+概率期望)
传送门 为啥在我看来完全不知道为什么的在大佬们看来全都是显然-- 考虑\(k=1\)的情况,如果序列中有某一个\(a_j\)的第\(i\)位为\(1\),那么\(x\)的第\(i\)位为\(1\)的概 ...
- [清华集训2014]玛里苟斯(线性基+概率期望)
首先有一些前置引理: 1. 由期望的线性性,平方的期望不等于期望的平方,所以求k次方的期望时,需要记录1~k-1的期望,然后计算增量(OSU!),这个这题没用上. 2. 线性基是可以变成每位只在一个元 ...
- [BZOJ 3811]玛里苟斯(线性基)尽量理解的题解
文章目录 title solution code title 魔法之龙玛里苟斯最近在为加基森拍卖师的削弱而感到伤心,于是他想了一道数学题. S 是一个可重集合,S={a1,a2,-,an}. 等概率随 ...
最新文章
- 属性处理器Spring攻略学习笔记(2.12)------外部化Bean配置
- MyEclipse 2013 新功能介绍
- hust1341(模拟)
- VTK:vtkAxisActor用法实战
- 关于 Orbeon form PE 版本使用 JavaScript Embedding API 的一个例子
- 深入理解kestrel的应用
- leetcode690. 员工的重要性(bfs)
- js保留两位小数的函数_使用率低但功能强大的6个Excel函数公式应用技巧解读!...
- 《深入体验 飞鸽传书 开发内幕 核心基础》
- 全国计算机二级c 笔记,[IT认证]全国计算机等级考试二级C语言笔记.doc
- asp.net中的post和get请求操作
- 以太网速率怎么手动设置_以太网能不能不丢包?
- 转 Oracle DBCA高级玩法:从模板选择、脚本调用到多租户
- arduino舵机代码_Arduino如何同时使用多个串口
- 【经典算法】第一回:快速排序
- Linux下配置完整安全的DHCP服务器详解
- 2021年,某云盘最新版不限速下载工具教程,亲测有效!
- 计算机一级office操作题题库百度云,2016计算机一级《MS Office》操作题题库
- NUISTOJ/P1623切蛋糕
- Heuristic function
热门文章
- Squoosh在线无损图片压缩工具中文版,JPG/webP/PNG/互转
- pip 因为网络问题而导致安装库失败
- svn安装完成check后无法commit错误信息,及相应的解决办法
- 蚂蚁金服“定损宝”现身AI顶级会议NeurIPS 1
- 和第三方接口对接总结
- [C++]Inside C++对象模型:第三、四、五章笔记
- Gif动图制作神器(GifCam)
- 台式计算机显示器品牌排行,现在电脑显示器什么品牌好?
- bios如何设置关闭触控板功能?
- android 图片热点区域,Android开发之扫描附近wifi热点并列表显示