zoj 3551 dp求期望

來源:互聯網
上載者:User

dp[i]表示現在存在i個吸血鬼要達成目標(全為吸血鬼)天數的數學期望
假如現在再增加一天,這一天可能會增加一個吸血鬼,
p1*(dp[i+1]+1)表示接下來的一天增加了一個吸血鬼,
所以為(dp[i+1]+1),
還有一種可能就是沒有增加吸血鬼,機率自然是(1-p1)
dp[i]+1表示接下來的一天沒有增加吸血鬼,但向後推移了一天
因此dp[i]這個狀態可以轉移到
dp[i+1]+1,機率為p1
dp[i]+1 機率為(1-p1)
所以dp[i]=(dp[i+1]+1)*p1+(dp[i]+1)*(1-p1);
p1是有i個吸血鬼再增加一個的機率
就是說一個人和一個吸血鬼相遇,且人成功變成吸血鬼的機率
為(n-i)*i*p/(C(n,2)),即2*(n-i)*i*p/((n-1)*n)

View Code

 1 #include<stdio.h>
2 #include<string.h>
3 double dp[100010];
4 int main()
5 {
6 int t,n,i;
7 double p;
8 scanf("%d",&t);
9 while(t--)
10 {
11 scanf("%d%lf",&n,&p);
12 dp[n]=0;
13 for(i=n-1;i>=1;i--)
14 {
15 dp[i]=dp[i+1]+(n-1)/((n-i)*p);
16 }
17 printf("%.3lf\n",dp[1]);
18 }
19 return 0;
20 }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.