zoukankan      html  css  js  c++  java
  • 【ZOJ】【3329】One Person Game

    概率DP/数学期望

      kuangbin总结题目中的第三道

      看来还是没有进入状态啊……都说是DP了……当然是要找【状态之间的转移关系】了……

      本题中dp[i]跟 dp[i-(k1+k2+k3)] 到dp[i-1]都有关系……然后所有的dp[i]都跟dp[0]即ans有关……

      用【系数】进行转移……sigh最近越来越水了

     1 //BZOJ 1000
     2 #include<cmath>
     3 #include<vector>
     4 #include<cstdio>
     5 #include<cstring>
     6 #include<cstdlib>
     7 #include<iostream>
     8 #include<algorithm>
     9 #define rep(i,n) for(int i=0;i<n;++i)
    10 #define F(i,j,n) for(int i=j;i<=n;++i)
    11 #define D(i,j,n) for(int i=j;i>=n;--i)
    12 #define pb push_back
    13 using namespace std;
    14 int getint(){
    15     int v=0,sign=1; char ch=getchar();
    16     while(!isdigit(ch)) {if(ch=='-') sign=-1; ch=getchar();}
    17     while(isdigit(ch))  {v=v*10+ch-'0'; ch=getchar();}
    18     return v*sign;
    19 }
    20 const int N=1e7+10,INF=~0u>>2;
    21 /*******************template********************/
    22 
    23 double A[505],B[505],p[20];
    24 
    25 int main(){
    26 //    freopen("input.txt","r",stdin);
    27     int T=getint();
    28     int k1,k2,k3,a,b,c,n;
    29     while(T--){
    30         n=getint(); k1=getint(); k2=getint(); k3=getint();
    31         a=getint(); b=getint(); c=getint();
    32         double p0=1.0/k1/k2/k3;
    33         memset(p,0,sizeof p);
    34         F(i,1,k1) F(j,1,k2) F(k,1,k3)
    35             if (i!=a || j!=b || k!=c) p[i+j+k]+=p0;
    36             
    37         D(i,n,0){
    38             A[i]=p0; B[i]=1;
    39             F(j,1,k1+k2+k3){
    40                 if (i+j>n) break;
    41                 A[i]+=A[i+j]*p[j];
    42                 B[i]+=B[i+j]*p[j];
    43             }
    44         }
    45         printf("%.15lf
    ",B[0]/(1-A[0]));
    46     }
    47     return 0;
    48 }
    View Code
  • 相关阅读:
    linux 常用命令
    git 常见命令
    合并两个有序链表---python
    Code Contract for .NET
    Kruskal最小生成树算法
    逻辑-哲学
    停机问题
    逆向工程
    .net framework
    python 类库
  • 原文地址:https://www.cnblogs.com/Tunix/p/4300545.html
Copyright © 2011-2022 走看看