描述
pòlya 獲得了乙個奇妙的口袋,上面寫著人類難以理解的符號。pòlya 看得入了迷,冥思苦想,發現了乙個神奇的模型(被後人稱為pòlya 模型)。為了生動地講授這個神奇的模型,他帶著學生們做了乙個虛擬遊戲:
遊戲開始時,袋中裝入a1
個顏色為
1 的球,a2
個顏色為
2 的球,…,at
個顏色為
t 的球,其中每乙個ai
都是正整數。
遊戲開始後,每次嚴格進行如下的操作:從袋中隨機的抽出乙個小球(袋中所有小球被抽中的概率相等),pòlya 獨自觀察這個小球的顏色後將其放回,然後再把d個與其顏色相同的小球放到口袋中。 設c
i 表示第i次抽出的小球的顏色1≤
ci≤t
,乙個遊戲過程將會產生乙個顏色序列(c1
,c2 ,⋯,cn
,⋯)。
pòlya 把遊戲開始時t 種顏色的小球每一種的個數a1
,a2 ,⋯,at
告訴了所有學生。然後他問學生:一次遊戲過程產生的顏色序列滿足下列條件的概率有多大?cx
1=y1
,cx2
=y2,
⋯,cx
i=yi
,⋯,c
xn=y
n 其中
0<
⋯0<
x 。換句話說, 已知(t
,n,d
,a1,
a2,⋯
,at,
x1,y
1,x2
,y2,
⋯,xn
,yn)
,你要回答有多大的可能性會發生下面的事件:「對所有k,
1≤k≤
nk, 1≤
k≤n ,第xk
次抽出的球的顏色為yk
」。格式輸入格式
第一行有三個正整數t,n,d(1≤t,n≤1000);第二行有t 個正整數a1
,a2,
⋯,at
(1≤a
k,d≤
10)表示遊戲開始時口袋裡t種顏色的球,每種球的個數。
以下n 行,每行有兩個正整數xi
,yix
,(1≤
x1≤x
2<
⋯≤10000,1
≤yk≤
t),表示第xi
次抽出顏色為的yi
球。輸出格式
要求用分數形式輸出(顯然此概率為有理數)。輸出包含一行,格式為:分子/分母。同時要求輸出最簡形式(分子分母互質)。特別的,概率為0 應輸出0/1,概率為1 應輸出1/1。
樣例1樣例輸入1
2 3 1
1 11 1
2 23 1
樣例輸出1
1/12
樣例2
樣例輸入2
3 1 2
1 1 1
5 1
樣例輸出2
1/3
限制
每個測試點1s。
提示樣例1說明:
初始時,兩種顏色球數分別為(1, 1),取出色號為1 的球的概率為1/2;第二次取球之前,兩種顏色球數分別為(2, 1),取出色號為2 的球的概率為1/3;第三次取球之前,兩種顏色球數分別為(2, 2),取出色號為1 的球的概率為1/2,所以三次取球的總概率為1/12。
**noi 2006 day 2
高精度首先,其實對於滿足第xi
取yi 的概率與第
i 次取的效果相同的(我不會證明!!!從別人 bl
og裡看到才知道的……)
然後剩下的就是分子和分母的高精度乘法的問題了……
#include
#include
using
namespace
std;
int t,n,d,cnt,tot;
int s[20005],p[2505],fz[2505],fm[2505],a[1005];
bool vis[20005];
int readln()
void makep()
}}void write(int t)
while (len--) printf("%d",s[len]);
}void mul(int x,int t)
}int main()
for (int i=1;i<=cnt;i++) if (fm[i]>=fz[i]) fm[i]-=fz[i],fz[i]=0; else fz[i]-=fm[i],fm[i]=0;
write(fz);printf("/");write(fm);
return
0;}
神奇的口袋
原題 有乙個神奇的口袋,總的容積是40,用這個口袋可以變出一些物品,這些物品的總體積必須是40。john現在有n個想要得到的物品,每個物品的體積分別是a1,a2 an。john可以從這些物品中選擇一些,如果選出的物體的總體積是40,那麼利用這個神奇的口袋,john就可以得到這些物品。現在的問題是,j...
神奇的口袋
時間限制 1 sec 記憶體限制 32 mb 有乙個神奇的口袋,總的容積是40,用這個口袋可以變出一些物品,這些物品的總體積必須是40。john現在有n個想要得到的物品,每個物品的體積分別是a1,a2 an。john可以從這些物品中選擇一些,如果選出的物體的總體積是40,那麼利用這個神奇的口袋,jo...
神奇的口袋
於牛客考研真題 題目描述 有乙個神奇的口袋,總的容積是40,用這個口袋可以變出一些物品,這些物品的總體積必須是40。john現在有n個想要得到的物品,每個物品的體積分別是a1,a2 an。john可以從這些物品中選擇一些,如果選出的物體的總體積是40,那麼利用這個神奇的口袋,john就可以得到這些物...