zoukankan      html  css  js  c++  java
  • hdu 4576 Robot 概率DP

    概率DP,从前往后递推就可以了!!

    代码如下:

     1 #include<iostream>
     2 #include<stdio.h>
     3 #include<algorithm>
     4 #include<iomanip>
     5 #include<cmath>
     6 #include<cstring>
     7 #include<vector>
     8 using namespace std;
     9 double dp[2][202],ans;
    10 int main(){
    11     int n,m,t,i,j,k,l,r,w;
    12     while(cin>>n>>m>>l>>r){
    13         if(n==0&&m==0&&l==0&&r==0) break;
    14         memset(dp,0,sizeof(dp));
    15         dp[0][0]=1;
    16         for(i=1,t=0;i<=m;i++){
    17             scanf("%d",&w);
    18             w%=n;
    19             k=t^1;
    20             for(j=0;j<n;j++) dp[k][j]=0;
    21             for(j=0;j<n;j++){
    22                 if(!dp[t][j]) continue;
    23                 dp[k][(n-w+j)%n]+=0.5*dp[t][j];
    24                 dp[k][(j+w)%n]+=0.5*dp[t][j];
    25             }
    26             t=k;
    27         }
    28         ans=0;
    29         for(i=l;i<=r;i++)
    30             ans+=dp[t][i-1];
    31         printf("%.4lf
    ",ans);
    32     }
    33     return 0;
    34 }
    View Code

  • 相关阅读:
    省选前模拟
    $SA$后缀数组
    一键运行
    多项式$fft$,$ntt$,$fwt$初步
    插头$DP$初步
    网络流初步
    欧拉路相关
    模板—Hash_map
    HZOJ Function
    HZOJ Tree
  • 原文地址:https://www.cnblogs.com/xin-hua/p/3250399.html
Copyright © 2011-2022 走看看