博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 3811: 玛里苟斯【线性基+期望dp】
阅读量:4358 次
发布时间:2019-06-07

本文共 2240 字,大约阅读时间需要 7 分钟。

这个输出可是有点恶心啊……WA*inf,最后抄了别人的输出方法orz

还有注意会爆long long,要开unsigned long long
对于k==1,单独考虑每一位i,如果这一位为1则有0.5的概率贡献1<<i,否则没有贡献,因为这一位选了奇数偶数个1的概率是一样的
对于k==2,考虑乘法的意义,也就是i位和j位同时为1的概率p,贡献(1<<(i+j))*p,这个p,如果全部的a[k]都是在i位和j为相同则是p=0.5(因为这样一来ij的值就关联了),否则p=0.25
对于剩下的,建线性基后最多有21个元素,直接枚举所有状态即可

#include
#include
#include
using namespace std;const int N=100005;unsigned long long n,m,k,a[N],b[65],tot,ans,res;unsigned long long read(){ unsigned long long r=0,f=1; char p=getchar(); while(p>'9'||p<'0') { if(p=='-') f=-1; p=getchar(); } while(p>='0'&&p<='9') { r=r*10+p-48; p=getchar(); } return r*f;}void ins(unsigned long long x){ for(int i=63;i>=0;i--) if(x>>i) { if(!b[i]) { b[i]=x; return; } x^=b[i]; }}int main(){ n=read(),k=read(); for(int i=1;i<=n;i++) a[i]=read(); if(k==1) { for(int i=1;i<=n;i++) ans|=a[i]; printf("%llu",ans>>1),puts((ans&1)?".5":""); return 0; } if(k==2) { unsigned s=0; for(int i=1;i<=n;i++) s|=a[i]; for(int i=0;i<32;i++) for(int j=0,fl=0;j<32;++j,fl=0) if((s>>i&1)&&(s>>j&1)) { for(int k=1;k<=n;k++) if((a[k]>>i&1)^(a[k]>>j&1)) { fl=1; break; } if(i+j-1-fl<0) ++res; else ans+=1llu<<(i+j-1-fl); } ans+=res>>1; printf("%llu",ans),puts((res&1)?".5":""); return 0; } unsigned long long ans=0; for(int i=1;i<=n;i++) ins(a[i]); // for(int i=0;i<=20;i++) // cerr<
<<" ";cerr<
=len) ans+=tot/len,tot%=len; } else { ans+=r/len*sm,r%=len,r*=sm,tot+=r; if(tot>=len) ans+=tot/len,tot%=len; } } printf("%llu",ans),puts(tot?".5":""); return 0;}

转载于:https://www.cnblogs.com/lokiii/p/10016365.html

你可能感兴趣的文章
微信自媒体账号涉违规大规模被封
查看>>
35.数组中的逆序对
查看>>
HDU 1811 Rank of Tetris
查看>>
绑定 前台
查看>>
由当前日期计算相应的周一和周日
查看>>
Silverlight Excel Release process
查看>>
Python(xlrd、xlwt模块)操作Excel实例(一)
查看>>
ZOJ Monthly, November 2012 - G - Gao The Sequence
查看>>
react dnd demo2
查看>>
洛谷——P1896 [SCOI2005]互不侵犯
查看>>
Java之String
查看>>
20155212 2017-2018-1 《信息安全系统设计》第7周学习总结
查看>>
新手C#ListView使用记录2018.08.03
查看>>
1028: 可乐(2018年中南大学研究生复试机试题 )
查看>>
珍藏的最全的windows操作系统快捷键
查看>>
【DBAplus】SQL优化:一篇文章说清楚Oracle Hint的正确使用姿势
查看>>
二叉树结点删除操作
查看>>
图论-单源最短路-SPFA算法
查看>>
转换文件的字符集
查看>>
prometheus + grafana安装部署(centos6.8)
查看>>