zoukankan      html  css  js  c++  java
  • [bzoj3191] [JLOI2013]卡牌游戏

      概率DP。

      首先由题解可得>_<,胜出概率只与剩余人数、与庄家的相对位置有关。

      所以设f[i][j]表示剩下i个人,从庄家开始第j个人的胜利概率。。。

      根据卡牌一通乱搞即可。。。

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<algorithm>
     5 #define d float
     6 using namespace std;
     7 int a[52],b[52];
     8 d f[52][52];
     9 int i,j,k,n,m;
    10  
    11 int ra;char rx;
    12 inline int read(){
    13     rx=getchar(),ra=0;
    14     while(rx<'0'||rx>'9')rx=getchar();
    15     while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra;
    16 }
    17  
    18 int main(){
    19     n=read(),m=read();
    20     for(i=1;i<=m;i++)a[i]=read();register int k;
    21     f[1][1]=1.0;
    22     for(i=2;i<=n;i++){
    23         for(j=1;j<=m;j++)b[j]=(a[j]-1)%i+1;
    24         for(j=1;j<=i;j++){
    25             d tmp=0.0;int zj;
    26             for(k=1;k<=m;k++)if(b[k]!=j)
    27                 zj=b[k]==i?1:b[k]+1,
    28                 tmp+=f[i-1][j>=zj?j-zj+1:i-(zj-j)+1];
    29             f[i][j]=tmp/m;
    30         }
    31     }
    32     for(i=1;i<n;i++)printf("%.2f",f[n][i]*100),putchar('%'),putchar(' ');printf("%.2f",f[n][n]*100);puts("%");
    33 }
    View Code
  • 相关阅读:
    php json_encode怪问题
    给phpcms v9添加热门搜索关键词
    magento 1.6 后台无法登录解决办法
    08 baidu QA
    java exception
    java thread / process / thread runnable / thread sleep / thread run
    java reflect
    db sysbase
    内存单元
    分段的方式来管理内存
  • 原文地址:https://www.cnblogs.com/czllgzmzl/p/5622135.html
Copyright © 2011-2022 走看看