每次都和e[0]有关系 通过方程消去环

dp[i] = sigma(dp[i+k]*p)+dp[0]*p+1
dp[i] = a[i]*dp[0]+b[i]
dp[i] = sigma(p*(a[i+k]*dp[0]+b[i+k]))+dp[0]*p+1
a[i] = sigma(a[i+k]*p)+p
b[i] = sigma(b[i+k]*p)+1

#include <cstdio>
#include <cstring>
using namespace std;
double A[555], B[555], P[555];
//dp[i] = sigma(dp[i+k]*p)+dp[0]*p+1
//dp[i] = a[i]*dp[0]+b[i]
//dp[i] = sigma(p*(a[i+k]*dp[0]+b[i+k]))+dp[0]*p+1
//a[i] = sigma(a[i+k]*p)+p
//b[i] = sigma(b[i+k]*p)+1
int main()
{int T;scanf("%d", &T);while(T--){int n, k1, k2, k3, a, b, c;scanf("%d %d %d %d %d %d %d", &n, &k1, &k2, &k3, &a, &b, &c);memset(A, 0, sizeof(A));memset(B, 0, sizeof(B));memset(P, 0, sizeof(P));double p = 1.0/(k1*k2*k3);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] += p;for(int i = n; i >= 0; i--){A[i] = p;B[i] = 1;for(int j = 1; j <= k1+k2+k3; j++){A[i] += A[i+j]*P[j];B[i] += B[i+j]*P[j];}}printf("%.18lf\n", B[0]/(1-A[0]));}return 0;
}

ZOJ 3329 One Person Game 带环的概率DP相关推荐

  1. 【ZOJ - 3329】One Person Game(带循环的概率dp,数学期望,高斯消元,数学)

    题干: There is a very simple and interesting one-person game. You have 3 dice, namely Die1, Die2 and D ...

  2. poj 2096 , zoj 3329 , hdu 4035 —— 期望DP

    题目:http://poj.org/problem?id=2096 题目好长...意思就是每次出现 x 和 y,问期望几次 x 集齐 n 种,y 集齐 s 种: 所以设 f[i][j] 表示已经有几种 ...

  3. 寻找带环的链表的柄长

    试题: 给定一个带环的链表,找出环起点. 比如:A -> B -> C -> D -> E -> C (C为环形起点) 写一个程序找出环起点C. ListNode结构如下 ...

  4. 链表是否带环、环入口、环长度、链表相交问题分析与总结

    关于链表的知识总结,参考原博客:http://www.cnblogs.com/hellogiser/p/linked-list-loop-and-intersections.html 一.链表是否带环 ...

  5. 双向带环带头结点的链表实现栈

    1. 数据结构     利用带头结点带环的结点实现栈的相关操作.因此, 每一个结点包括了一个前驱, 一个后继, 还有一个数据成员 typedef char DLinkStackType;typedef ...

  6. ]数据结构:单链表之判断两个链表是否相交及求交点(带环、不带环)

    1.判断两个链表是否相交,若相交,求交点.(假设链表不带环) 两个指针同时指向两个链表,分别依次往后遍历链表到最后一个节点,如指针的值相同(即节点地址相同),反之没有交点. int IsCross(N ...

  7. 【数据结构与算法】带环单链表查找环的入口算法

    带环单链表的故事 @不了解前尘往事的Reader,烦请阅读--<判断单链表是否有环的算法> 如何找带环单链表的环的入口 这里只说比较可行的算法吧. 思路一:HashSet第一个重复元素就是 ...

  8. BZOJ 3875 - SPFA处理带环的DP

    本题的DP思路很好想:设f[i]为第i个怪兽被消灭所需要的最小代价,那么, f[i]=min{spl[i],ori[i]+∑j∈App[i]f[j]} 然而,由于f[j]有可能也要依赖f[i],所以这 ...

  9. [PHP] 算法-请找出带环链表的环的入口结点的PHP实现

    给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null1.找链表倒数第k个结点,输入一个链表,输出该链表中倒数第k个结点.第一个指针走(k-1)步,到达第k个节点,两个指针同时往后移 ...

最新文章

  1. 部署war包到阿里云liunx的tomcat时报错:zip END header not found
  2. linux setcap指令,Linux下setcap详解
  3. PHP 选取数组中最大的 键 和 值
  4. python操作mongodb之六自定义类型存储
  5. T-SQL学习中--内联接,外连接,交叉连接
  6. 科大星云诗社动态20210907
  7. 关于 【通过代理访问】 的研究,【突破 IP ,“无限制”投票】
  8. 前端打印第三方插件_vscode mock服务插件amock教程
  9. 写给在Java和.net中徘徊的新手
  10. LeetCode LCP 28. 采购方案(排序 + 二分查找)
  11. terminated 线程_深入并发,线程相关知识全解析
  12. Android N 将提供分屏功能和新设计的通知控制
  13. 百度地图订单分布php,php与百度地图API实现注册用户分布图
  14. 文件系统 文件时间记录在哪里_计算机系统基础:文件管理相关知识笔记
  15. php carbon,laravel Carbon函数
  16. 层次分析法在高校教学评价体系中的应用(原理+实例+工具)
  17. 妈妈再也不用担心我的博客访问量了(一个可以刷博客访问量的小程序java)
  18. ubuntu下使用vscode阅读内核源码或uboot源码使用技巧——search.excludefiles.exclude
  19. cortex系列处理器排行_ARM Cortex-M 处理器家族介绍和比较-控制器/处理器-与非网...
  20. 51nod 1128 正整数分组 V2(二分数组)

热门文章

  1. 踩坑了,JDK8中HashMap依然会产生死循环问题!
  2. 拼多多二面:Mybatis是如何执行一条SQL命令的?
  3. 一个基于Spring Boot的API、RESTful API项目骨架
  4. Java线程有哪些不太为人所知的技巧与用法?
  5. 机器学习数学基础:常见分布与假设检验
  6. 北大元培系AI公司,一年狂揽三轮融资,最新A轮斩获数千万美元
  7. ICML 2021刚刚做出了一个「艰难的决定」:将论文接收率直接砍掉10%
  8. 清华博士找工作7个月没着落,本科学历影响几时休?
  9. 自动化所研究员:有的研究生在导师手底下过的不如狗,读研到底为了什么?...
  10. gunicorn源码分析