洛谷 P3802 小魔女帕琪

2022-05-02 13:54:09 字數 1589 閱讀 6035

題目背景

從前有乙個聰明的小魔女帕琪,興趣是狩獵吸血鬼。

帕琪能熟練使用七種屬性(金、木、水、火、土、日、月)的魔法,除了能使用這麼多種屬性魔法外,她還能將兩種以上屬性組合,從而唱出強力的魔法。比如說為了加強攻擊力而將火和木組合,為了掩蓋弱點而將火和土組合等等,變化非常豐富。

現在帕琪與強大的夜之女王,吸血鬼蕾咪相遇了,夜之女王蕾咪具有非常強大的生命力,普通的魔法難以造成效果,只有終極魔法:帕琪七重奏才能對蕾咪造成傷害。帕琪七重奏的觸發條件是:連續釋放的7個魔法中,如果魔法的屬性各不相同,就能觸發一次帕琪七重奏。

現在帕琪有7種屬性的能量晶體,分別為a1,a2,a3,a4,a5,a6,a7(均為自然數),每次釋放魔法時,會隨機消耗乙個現有的能量晶體,然後釋放乙個對應屬性的魔法。

現在帕琪想知道,她釋放出帕琪七重奏的期望次數是多少,可是她並不會算,於是找到了學oi的你

輸入格式:

一行7個數字,a1,a2,a3,a4,a5,a6,a7

輸出格式:

乙個四捨五入保留3位的浮點數

輸入樣例#1: 複製

1 1 1 1 1 1 1

輸出樣例#1: 複製

1.000

樣例說明:

顯然一定會觸發一次帕琪七重奏

資料範圍:

對於30%的測試點,a1+a2+a3+a4+a5+a6+a7<=10

對於100%的測試點,a1+a2+a3+a4+a5+a6+a7<=10^9

by-szc

好題首先,對於這種沒有給出權值或者權值為1的題求期望,根據期望的定義式:期望=$\sum pi*xi$

這樣的題沒有實際上就是求概率

定義:$tot=\sum_^7 ai$

對於每乙個元素,它可以被作為釋放元素的概率為$(a1/tot)*(a2/(tot-1))*(a3/(tot-2))*...*(a7/(tot-6))$=$a[i]/(tot-i+1)$

這道題目與釋放的順序無關,所以還需要乘上7的階乘,也就是5040

此時,我們還遺漏了乙個條件:所有的元素都必須用上,

根據排列的性質,每乙個元素都可以作為首項元素,只要元素的個數不滿7

所以我們需要在結尾乘$(tot-6)$

1 #include2 #include3 #include4 #include5

using

namespace

std;

6 inline int

read()710

while(c>='

0'&&c<='

9')x=x*10+c-48,c=getchar();return x*flag;11}

12double a[15],tot=0;13

intmain()

1422

double ans=5040.0;23

for(int i=1;i<=7;i++)

24 ans=ans*(a[i]/(tot-i+1

));25 ans=ans*(tot-6

);26 printf("

%.3lf

",ans);

27return0;

28 }

洛谷P3802 小魔女帕琪

從前有乙個聰明的小魔女帕琪,興趣是狩獵吸血鬼。帕琪能熟練使用七種屬性 金 木 水 火 土 日 月 的魔法,除了能使用這麼多種屬性魔法外,她還能將兩種以上屬性組合,從而唱出強力的魔法。比如說為了加強攻擊力而將火和木組合,為了掩蓋弱點而將火和土組合等等,變化非常豐富。現在帕琪與強大的夜之女王,吸血鬼蕾咪...

洛谷P3802 小魔女帕琪

從前有乙個聰明的小魔女帕琪,興趣是狩獵吸血鬼。帕琪能熟練使用七種屬性 金 木 水 火 土 日 月 的魔法,除了能使用這麼多種屬性魔法外,她還能將兩種以上屬性組合,從而唱出強力的魔法。比如說為了加強攻擊力而將火和木組合,為了掩蓋弱點而將火和土組合等等,變化非常豐富。現在帕琪與強大的夜之女王,吸血鬼蕾咪...

P3802 小魔女帕琪

傳送門 考慮前面7個魔法 如果前面七個魔法各不相同,那麼就能完成一次帕琪七重奏 設 a a1 a2 a7,s a1 a2 a7,b s s 1 s 6 對於不同的施法順序,前面七個魔法各不相同的概率總是 a b 不同的順序如 a1,a3,a2,a4,a5,a6,a7 和 a1,a2,a3,a4,a5...