bzoj3811 uoj36 玛里苟斯
做题前问了一下miaom,得到了一个奇怪的回答

mmp
这题分类讨论
k=1sb题
k=2按位计算,把每个数看成几个2的幂次的和,按位跑期望
k>2线性基sb题
没了
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 100005
#define M 75
#define ll unsigned long long
using namespace std; int n,flag; ll ans,res,mod,bin[M],a[N],base[M]; bool f[M][M];
void calc(){
int i,j;
for (i=; i<=n; i++)
for (j=; j>=; j--) if (a[i]&bin[j])
if (!base[j]){
base[j]=a[i]; break;
} else a[i]^=base[j];
for (j=n=; j<; j++) if (base[j]) a[++n]=base[j];
}
void solve1(){
int i,j,k,t;
for (i=; i<; i++)
for (j=; j<=n; j++) f[i][j]=(a[j]&bin[i])?:;
for (i=; i<; i++)
for (j=; j<; j++){
for (k=; k<=n; k++) if (f[i][k]) break;
if (k>n) continue;
for (k=; k<=n; k++) if (f[j][k]) break;
if (k>n) continue;
t=;
for (k=; k<=n && !t; k++)
if (f[i][k]!=f[j][k]) t=;
if (i+j--t<) res++; else ans+=bin[i+j--t];
ans+=res>>; res&=;
}
printf("%llu",ans); puts(res?".5":"");
}
void dfs(int k,ll now){
if (k>n){
int i; ll u=,v=;
for (i=; i<=flag; i++){
u*=now; v*=now;
u+=v>>n; v&=mod;
}
ans+=u; res+=v;
ans+=res>>n; res&=mod;
return;
}
dfs(k+,now); dfs(k+,now^a[k]);
}
void solve2(){
mod=bin[n]-; dfs(,);
printf("%llu",ans); puts(res?".5":"");
}
int main(){
scanf("%d%d",&n,&flag); int i;
bin[]=; for (i=; i<; i++) bin[i]=bin[i-]<<;
for (i=; i<=n; i++) scanf("%llu",&a[i]);
if (flag==){
for (i=; i<=n; i++) ans|=a[i];
printf("%llu",ans>>); puts((ans&)?".5":"");
return ;
}
calc();
if (flag==) solve1(); else solve2();
return ;
}
bzoj3811 uoj36 玛里苟斯的更多相关文章
- 【BZOJ3811】玛里苟斯(线性基)
[BZOJ3811]玛里苟斯(线性基) 题面 BZOJ 题解 \(K=1\)很容易吧,拆位考虑贡献,所有存在的位出现的概率都是\(0.5\),所以答案就是所有数或起来的结果除二. \(K=2\)的情况 ...
- 【BZOJ3811/UOJ36】 玛里苟斯
Description 魔法之龙玛里苟斯最近在为加基森拍卖师的削弱而感到伤心,于是他想了一道数学题. S 是一个可重集合,S={a1,a2,…,an}. 等概率随机取 S 的一个子集 A={ai1,… ...
- #YCB#待做题目与填坑资料
各种填坑资料(qwq) 主席树(by YL)戳 树套树(by ZSY)戳 不要问我这些题咋来的(查大佬的水表呗) 题目列表: [HDU5977]Garden of Eden [BZOJ2752][HA ...
- 【bzoj3811】【清华集训2014】玛里苟斯
3811: 玛里苟斯 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 500 Solved: 196[Submit][Status][Discuss] ...
- BZOJ3811 玛里苟斯(线性基+概率期望)
k=1的话非常好做,每个有1的位都有一半可能性提供贡献.由组合数的一些性质非常容易证明. k=2的话,平方的式子展开可以发现要计算的是每一对位提供的贡献,于是需要计算每一对位被同时选中的概率.找出所有 ...
- bzoj3811 玛里苟斯
分三种情况讨论 k=1时,对于每一位而言,只要有一个数这一位是1,那么这个就有0.5的概率是1,选他就是1,不选就是0,有第二个的话,在第一个选或不选的前提下,也各有0.5的几率选或不选,0和1的概率 ...
- UOJ#36. 【清华集训2014】玛里苟斯 线性基
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ36.html 题解 按照 $k$ 分类讨论: k=1 : 我们考虑每一位的贡献.若有至少一个数第 $i$ ...
- bzoj 3811: 玛里苟斯
3811: 玛里苟斯 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 190 Solved: 95[Submit][Status][Discuss] ...
- uoj 36 玛里苟斯
[清华集训2014]玛里苟斯 - 题目 - Universal Online Judge k=1,2,3,4,5各占20pts是提示 应当分开考虑 k=1 拆位,如果第i位有1,则有1/2的概率xor ...
随机推荐
- jquery 3D分页翻转滑块
jquery 3D分页翻转滑块,jquery分页,jquery插件,jquery,3D翻转,css3分页,360度旋转,网页特效代码3D分页翻转滑块是一款使用网格样式与滑块效果分页的特效.
- Mybatis-Generator_学习_01_mybatis-generator笔记
一.generatorConfig.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ...
- Java内部类复习
package com.t_06; import org.junit.Test; import com.t_06.StaticClass.StaticInnerClass; /** * 一个类的定义放 ...
- linux网络编程 gethostbyname()
gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针.结构的声明与gethostaddr()中一致. 返回对应于给定主机名的主机信息. #include ...
- BZOJ-4819: 新生舞会(01分数规划+费用流)
Description 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴.有n个男生和n个女生参加舞会 买一个男生和一个女生一起跳舞,互为舞伴.Cathy收集了这些同学之间 ...
- CodeForces 547E:Mike and Friends(AC自动机+DFS序+主席树)
What-The-Fatherland is a strange country! All phone numbers there are strings consisting of lowercas ...
- 1087 All Roads Lead to Rome (30)(30 分)
Indeed there are many different tourist routes from our city to Rome. You are supposed to find your ...
- setsockopt函数功能及参数详解
Socket描述符选项[SOL_SOCKET] #include <sys/socket.h> int setsockopt( int socket, int level, int opt ...
- Ubuntu 16.04 LTS 一键安装VNC
Ubuntu 16.04 LTS 安装VNC,在百度和谷歌找了很多教程,不是太老,就是说的驴唇不对马嘴,所以忍不住写一些以正视听. Ubuntu 16.04 LTS是最近出的LTS版本系统,估计未来也 ...
- 基于zookeeper的MySQL主主负载均衡的简单实现
1.先上原理图 2.说明 两个mysql采用主主同步的方式进行部署. 在安装mysql的服务器上安装客户端(目前是这么做,以后想在zookeeper扩展集成),客户端实时监控mysql应用的可用性,可 ...