xdoj-1400 zxy的射击

Posted xidian-mao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xdoj-1400 zxy的射击相关的知识,希望对你有一定的参考价值。

  题目链接

  核??:  这道题求二项分布E(x^k)的期望, 刚才是照着E(X^2)展开化简得到np(1-p)的形式化简,但是失败了

                 后来发现这道题可以用数学期望的独立性来做,动态规划-233

                 先说一下期望的性质与证明:

       技术图片

    用概率密度函数证明貌似很好证明:

      技术图片

               我们可以把二项分布实验看作是n次伯努利实验, x=x1+x2+...+xn

               那么x^k=(x1+..xn)*(x1+..xn)*...*(x1+..xn)

                x^k中所有元素可以根据所含xi种类数分为k类, 同一类具有相同的数学期望. 比如k=3,n=3时, x1x2x2与x1x1x2具有相同数学期望p^2

               我们设立这样的状态dp[i][j]->表示x^i次方展开项有j类xi, 那么dp[i][j]=dp[i-1][j]*j+dp[i-1][j-1]*(n-j+1)

              E(X^k)=dp[k][1]*p+dp[k][2]*p^2+...dp[k][k]*p^k

              好啦,问题解决了....ps(mt,好想你)

    

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long LL;
 4 const int N=1007;
 5 const LL mod=1e9+7;
 6 const LL x=570000004;// 100关于mod的逆元
 7 LL dp[N][N];
 8 LL n,p,k;
 9 int main ()
10 {
11     while (~scanf("%lld %lld %lld",&n,&k,&p)) {
12         p=p*x%mod;
13         memset (dp,0,sizeof(dp));
14         dp[1][1]=n;
15         for (int i=2;i<=k;i++)  
16             for (int j=1;j<=i;j++) 
17                 dp[i][j]=( dp[i-1][j]*j+dp[i-1][j-1]*(n-j+1)%mod )%mod;
18         LL sum=0; LL t=p;
19         for (int i=1;i<=k;i++) {
20             sum=(sum+t*dp[k][i])%mod;
21             t=t*p%mod;
22         }
23         printf("%lld\\n",sum);
24     }   
25     return 0;
26 }

 

 

    

 

以上是关于xdoj-1400 zxy的射击的主要内容,如果未能解决你的问题,请参考以下文章

Python制作自己的第一人称射击游戏

JS 射击游戏

敌人没有向玩家射击。仅检测玩家何时在左侧。敌人需要向玩家射击

射击射弹的物体

CS1.6进入后无法移动和射击,提示有错误!

Unity射击小游戏