description
我手上有n
nn枚硬幣,第i
ii枚正面朝上的概率是p
ip_i
pi。我現在每個硬幣各拋一次,正面朝上看做1
11,背面朝上看做0
00,把所有硬幣得到的數異或起來決定最後得到的數。問:有多少個子集合使得0
00和1
11的概率相等?」
input
輸入的第一行包含乙個整數t
tt,表示測試組數。
每個測試用例前面都有乙個空白行。
每個測試用例由兩行組成。
第一行包含硬幣數量nnn。
第二行包含n
nn個數表示:概率p1,
...,
pn
p_1,...,p_n
p1,..
.,pn
。每個p
ip_i
pi都給出6
66個小數字。
( n≤
60,t=
500)
(n\le 60,t=500)
(n≤60,
t=50
0)output
對於每個測試用例輸出乙個數:使得0和1的概率相等的子集合數量。
sample input
30.500000 0.500000 0.500000
40.000001 0.000002 0.000003 0.000004
sample output7
0solution
只有存在pi=
0.5p_i=0.5
pi=0.
5時才會使得0,1
0,10,
1概率相等,故統計pi=
0.5p_i=0.5
pi=0.
5的個數m
mm,答案即為2n−
m⋅(2
m−1)
2^\cdot (2^m-1)
2n−m⋅(
2m−1
) code
#include#includeusing namespace std;
int t,n,m;
char s[11];
int main()
printf("%lld\n",((1ll<} return 0;
}
Newcoder 128 A 禮物(組合數學)
description 假設某個店鋪有n nn種不同型別的1 11元奧利奧和m mm種不同型別的2 22元奧利奧,而且餘量無限,我的錢有k kk元,我想把k kk元都用來買奧利奧,且可以買同型別的奧利奧,你能幫我算出有多少種購買方式嗎?設答案為z zz,這個數字也許會很大,所以我們只需要輸出zmo ...
Newcoder 128 F 填數字(貪心)
description 托公尺發現了一種新的遊戲 填數字 每填寫一次數字 1 i 9 1 le i le 9 1 i 9 需要花費a ia i ai 枚金幣,托公尺總共有n nn枚金幣.托公尺想知道他能得到的最大數字是多少.如果填不了請輸出 1 1 1。不需要用完所有金幣 input 第一行乙個數字...
Newcoder 128 C 尋寶(樹形DP)
description 由依是戰線佯攻部隊的輔助人員,在岩澤消失之後,企圖代替岩澤成為gdm gdmgd m主唱。但是sss sssss s戰線的領袖仲村由理是不會輕易讓她加入的,於是由理子給了由依一項艱鉅的任務 去乙個地下迷宮尋找寶石 這個迷宮由n nn個房間組成,編號為0 00到n 1 n 1n...