自己看了很多blog才弄明白,自己就不说什么啦,建议在做几道简单题再做这道题,我认为这个blog写的很好,很具体 http://blog.csdn.net/morgan_xww/article/details/6775853

#include<iostream>
#include<cstdio>
using namespace std;
#define M 505
double dp[M],A[M],B[M],p[M];
int n,k1,k2,k3,a,b,c;
int main(){//   freopen("in.txt","r",stdin);int cases;scanf("%d",&cases);while(cases--){scanf("%d%d%d%d%d%d%d",&n,&k1,&k2,&k3,&a,&b,&c);double p0=1*(1.0)/k1/k2/k3;for(int i=0;i<500;i++){p[i]=dp[i]=A[i]=B[i]=0;}for(int i=1;i<=k1;i++){for(int j=1;j<=k2;j++){for(int k=1;k<=k3;k++){if(i==a&&j==b&&k==c) p[i+j+k]=0;else p[i+j+k]+=p0;}}}A[0]=p0;B[0]=1;for(int i=n;i>=0;i--){for(int j=3;j<=(k1+k2+k3);j++){A[i]+=A[i+j]*p[j];B[i]+=B[i+j]*p[j];}}dp[0]=B[0]/(1-A[0]);printf("%.15lf\n",dp[0]);}
}

zoj 3329 One Person Game 概率dp(有环)相关推荐

  1. ZOJ 3502 Contest 状态压缩 概率 DP

    链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3502 1 #include <iostream> 2 # ...

  2. 【原创】概率DP总结 by kuangbin

    概率DP主要用于求解期望.概率等题目. 转移方程有时候比较灵活. 一般求概率是正推,求期望是逆推.通过题目可以体会到这点. 首先先推荐几篇参考的论文: <信息学竞赛中概率问题求解初探> & ...

  3. 关于概率dp的个人理解与总结

    原文来自:http://blog.csdn.net/wdcjdtc/article/details/38424029 首先,概率dp主要解决的是关于概率问题和期望问题的求解. 难点和普通dp一样在于d ...

  4. 2018.09.01 poj3071Football(概率dp+二进制找规律)

    传送门 概率dp简单题. 设f[i][j]表示前i轮j获胜的概率. 如果j,k能够刚好在第i轮相遇,找规律可以发现j,k满足: (j−1)>>(i−1)(j−1)>>(i−1) ...

  5. Discovering Gold LightOJ - 1030[概率dp或者记忆化搜索]

    题目大意:有一个[1,n][1,n][1,n]的数轴,数轴上的每个对应位置上都有金矿,你初始位置是1,然后你每次都会投色子决定你下一步跳到哪里,如果你跳出了nnn,那么你就要重新投.问你跳到nnn的时 ...

  6. poj 3071 Football(概率dp)

    http://poj.org/problem? id=3071 大致题意:有2^n个足球队分成n组打比赛.给出一个矩阵a[][],a[i][j]表示i队赢得j队的概率.n次比赛的流程像这样France ...

  7. HDU 5001 概率DP || 记忆化搜索

    2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP  測 ...

  8. hdu 3853 LOOPS 概率DP

    简单的概率DP入门题 代码如下: 1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 ...

  9. HDU - 4035 Maze(概率dp)

    题目链接:点击查看 题目大意:给出一个 n 个点的树,初始时位于点 1 ,每个点都会给出一个概率 k[ i ] 和一个概率 e[ i ] ,其代表的意义分别是: k[ i ] :在点 i 有 k[ i ...

  10. SDUT - 2623 The number of steps(概率dp)

    题目链接:点击查看 题目大意:给出一个 n 层的三角形,第一层有 1 个点,第二层有 2 个点,第三层有 3 个点 ... 第 n 层有 n 个点,现在规定从第一层的点向下出发: 如果左下方有点并且右 ...

最新文章

  1. 遗传算法与C++实现
  2. Github | NumPy手写全部主流机器学习模型
  3. 有关绑定没有数据显示的问题
  4. 想创业没有资金,如何获得启动资金?
  5. 漏洞:Client ReDos From Regex Injection
  6. 大数据分析与应用技术国家工程实验室项目通过验收
  7. 剑指offer 31.栈的、压入弹出序列
  8. Java大数据你该学哪个
  9. 深度学习001---勾股定理
  10. Spark 基础——RDD 算子
  11. activemq部署
  12. chrome强烈推荐安装Octotree插件
  13. 《算法概论》第八章NP完全问题部分习题解
  14. Chrome Edge与Safari书签同步
  15. 【Tidy2】Notepad++的html格式化插件
  16. Failed to send a request to Slack API server: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certif
  17. 一对同居男女同一天的日记对比
  18. 计算某天是某年的第多少天
  19. 此计算机必须为委派而被信任_允许受信任的用户进行委派
  20. Oracle开启binlog

热门文章

  1. Java 的自动装箱拆箱
  2. Tengine编译安装+lua+sticky模块
  3. jvm中的新生代Eden和survivor区
  4. Idea 设置根目录
  5. 70.Android开发知识点总结
  6. [everydayNote] 今天脑子不好使
  7. VS2008+QT+CYAPI开发USB程序问题
  8. 2008-05-23
  9. 用EasyRecovery“监控硬盘”功能检测硬盘问题的方法
  10. 如何使用清理垃圾软件优化苹果电脑