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]玛里苟斯-[线性基]相关推荐

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

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

  2. 【BZOJ3811】【清华集训2015】玛里苟斯(线性基)

    传送门 解析: 还是挺好想的,首先对于k=1的情况,如果某一个数在这一位上有1,那么最终结果中这一位为1的概率就是0.5. 有一个很显然的性质,所有异或结果出现概率(或者说方案数)相同. 其次,对于k ...

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

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

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

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

  5. 【地狱副本】数据结构之线段树Ⅲ——区间最值/赋值/修改/历史值操作(HDU5306,Tyvj 1518,【清华集训2015】V,HDU6315,HDU1828,POJ3162)

    文章目录 Gorgeous Sequence Tyvj 1518 CPU监控 [清华集训2015]V Naive Operations Picture Walking Race Gorgeous Se ...

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

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

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

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

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

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

  9. [BZOJ 3811]玛里苟斯(线性基)尽量理解的题解

    文章目录 title solution code title 魔法之龙玛里苟斯最近在为加基森拍卖师的削弱而感到伤心,于是他想了一道数学题. S 是一个可重集合,S={a1,a2,-,an}. 等概率随 ...

最新文章

  1. 属性处理器Spring攻略学习笔记(2.12)------外部化Bean配置
  2. MyEclipse 2013 新功能介绍
  3. hust1341(模拟)
  4. VTK:vtkAxisActor用法实战
  5. 关于 Orbeon form PE 版本使用 JavaScript Embedding API 的一个例子
  6. 深入理解kestrel的应用
  7. leetcode690. 员工的重要性(bfs)
  8. js保留两位小数的函数_使用率低但功能强大的6个Excel函数公式应用技巧解读!...
  9. 《深入体验 飞鸽传书 开发内幕 核心基础》
  10. 全国计算机二级c 笔记,[IT认证]全国计算机等级考试二级C语言笔记.doc
  11. asp.net中的post和get请求操作
  12. 以太网速率怎么手动设置_以太网能不能不丢包?
  13. 转 Oracle DBCA高级玩法:从模板选择、脚本调用到多租户
  14. arduino舵机代码_Arduino如何同时使用多个串口
  15. 【经典算法】第一回:快速排序
  16. Linux下配置完整安全的DHCP服务器详解
  17. 2021年,某云盘最新版不限速下载工具教程,亲测有效!
  18. 计算机一级office操作题题库百度云,2016计算机一级《MS Office》操作题题库
  19. NUISTOJ/P1623切蛋糕
  20. Heuristic function

热门文章

  1. Squoosh在线无损图片压缩工具中文版,JPG/webP/PNG/互转
  2. pip 因为网络问题而导致安装库失败
  3. svn安装完成check后无法commit错误信息,及相应的解决办法
  4. 蚂蚁金服“定损宝”现身AI顶级会议NeurIPS 1
  5. 和第三方接口对接总结
  6. [C++]Inside C++对象模型:第三、四、五章笔记
  7. Gif动图制作神器(GifCam)
  8. 台式计算机显示器品牌排行,现在电脑显示器什么品牌好?
  9. bios如何设置关闭触控板功能?
  10. android 图片热点区域,Android开发之扫描附近wifi热点并列表显示