description
魔法之龍瑪里苟斯最近在為加基森拍賣師的削弱而感到傷心,於是他想了一道數學題。
s 是乙個可重集合,s=
。等概率隨機取
s 的乙個子集a=
。計算出
a 中所有元素異或
x, 求xk
的期望。
input
第一行兩個正整數n,
k 。以下n
行每行乙個整數,表示ai
。1≤n
≤100000,1
≤k≤5
,ai≥
0 。最終答案小於263
。k=1
,2,3
,4,5
各自占用20%
的資料output
如果結果是整數,直接輸出。如果結果是小數(顯然這個小數是有限的),輸出精確值(末尾不加多餘的0)。
sample input
4 2sample output
3.5solutionk
=1時,考慮每一位對答案的影響,對於第
i 位,如果這
n個數中存在一些數在第
i 位是
1,由於從一些數中選出偶數個數和選出奇數個數概率相等,故有
0.5 的概率在第
i 位是
1,否則對答案的貢獻為
0 ,故只要把這
n個數或起來除
2 即可k=
2時,考慮異或和二進位制下平方的表示,設該異或和二進位制表示為b1
b2..
.bm ,那麼對答案的貢獻為∑i
,jbi
bj2i
+j,考慮bi
=bj=
1 的概率,只看這
n 個數的第
i位和第
j 位,(0
,0)不用考慮,只用考慮(1
,0),
(0,1
),(1
,1) 這三種情況,設這三種分別拿a,
b,c 個,那麼為了得到(1
,1) 需滿足a+
c,b+
c 均為奇數,若
c 為奇數,那麼a,
b都是偶數,若
c 為偶數,那麼a,
b都是奇數,設這
n 個數中這兩位是(1
,0),
(0,1
),(1
,1)這三種情況的分別由a,
b,c 個,那麼如果a=
b=0 ,那麼要得到(1
,1) 只能拿奇數個(1
,1) ,概率是
0.5 ;如果
a>0,
b=0(
a=0,
b>
0 同理),拿奇數個(1
,1) 和偶數個(1
,0) 概率是
0.25
; 如果a,
b>
0 ,則拿奇數個(1
,1) 和偶數個(1
,0) 和偶數個(0
,1) 的概率是
0.125
,拿奇數個(1
,1) 和偶數個(1
,0) 和偶數個(0
,1) 的概率是
0.125
,加起來就是
0.25
,故只要存在(1
,0) 或(0
,1) 概率就是
0.25
,否則概率是
0.5 ,故只需列舉i,
j 考慮著兩位對答案的貢獻即可k≥
3 時,由於答案不超過263
,故線性基維數
m 不會超過
21個,直接求出線性基列舉子集即可求和再除以2m
即可, 但是運算過程中答案可能會超過263
,可以把數
a 表示成a=
⌊a2m
⌋2m+
a%2m
,拿除數和餘數去運算
code
#include
using
namespace
std;
typedef
long
long ll;
typedef
unsigned
long
long ull;
const
int maxn=100005;
int n,k,base[30];
ll a[maxn];
int main()
printf("%llu%s\n",ans>>1,ans&1?".5\n":"\n");
}else
if(k==2)
if(i+j-1-f<0)res++;
else ans+=(1ll<<(i+j-1-f));
}ans+=res>>1;
printf("%lld%s",ans,res&1?".5\n":"\n");
}else
else temp^=base[j];}}
int m=0;
for(int i=0;i<=22;i++)
if(base[i])base[m++]=base[i];
int m=1
<0,res=0;
for(int i=1;iint temp=0;
for(int j=0;jif((i>>j)&1)temp^=base[j];
ll x=0,y=1;
for(int j=0;j>m,y&=(m-1);
}ans+=x,res+=y;
ans+=res>>m,res&=(m-1);
}if(res)printf("%lld.5\n",ans);
else
printf("%lld\n",ans);
}return
0;}
bzoj3811 瑪里苟斯 線性基
description 魔法之龍瑪里苟斯最近在為加基森拍賣師的削弱而感到傷心,於是他想了一道數學題。s 是乙個可重集合,s 等概率隨機取 s 的乙個子集 a 計算出 a 中所有元素異或 x,求 x k 的期望。input 第一行兩個正整數 n,k。以下 n 行每行乙個整數,表示 ai。output ...
BZOJ3811瑪里苟斯
從乙個序列裡面選擇一些數異或起來,求所有異或方案的答案的 k 次方的期望值 n le 100000,1 le k le 5 對於 k 1 的情況,對於每一位分開考慮 如果至少有乙個數的當前位是 1 的,那麼有一半的可能性為 0 也就是如果乙個異或方案為 0 那麼選擇其補就能能得到為 1 的結果 使用...
bzoj 3811 瑪里苟斯
time limit 10 sec memory limit 256 mb submit 190 solved 95 submit status discuss 魔法之龍瑪里苟斯最近在為加基森拍賣師的削弱而感到傷心,於是他想了一道數學題。s 是乙個可重集合,s 等概率隨機取 s 的乙個子集 a 計算...