[算法]概率与期望DP
前言
前两节主要针对题目分析,没时间的珂以跳过。
初步
首先举一道简单、经典的好题:
[Lightoj1038]Race to 1 Again
懒得单独写,安利一下DennyQi同学的博客:https://www.cnblogs.com/qixingzhi/p/9346307.html。
很显然很多期望题的状态是和自己有关的,怎么办呢,难道不停的搜索自己?
上面的方法显然行不通,于是我们只能简单变形一下。
很容易列出方程:
\[f[n]= \frac{\sum_{i=1}^{m}f[fac_n^i]}{m} + 1\]
其中\(m\)表示因子个数,\(fac_n^i\)表示\(n\)的第\(i\)个因子。
鉴于要让右边消去后效性,两边同时乘以\(m\),移项即可。
再举一道稍微复杂一点的题目:
[zoj3329]One Person Game
题意简述:
有三个骰子,分别有k1, k2, k3个面。
记录一个初值为0的分数,每次掷骰子,如果三个面分别为a, b, c则分数置0,否则加上三个骰子的分数之和。
当分数大于n时结束。求游戏的期望步数。
设f[i]为当前已经获得了i分时,游戏结束的期望步数。
为了方便表示我们不妨设p[i]为投到点数为i的概率,特殊的p[0]为回到0的概率。
很容易想到如下递推:
\[f[i]=\sum(p[k] \times dp[i+k])+dp[0] \times p[0]+1\]
一眼看过去大清亡了,成环了,能用高斯消元也就算了,关键是高斯消元会TLE。
我们发现我们需要求的东西只有f[0],于是我们分离常数,令f[i]=A[i]*f[0]+B[i]
那么显然我们要求的f[0]就喜闻乐见地变成了\(\frac{B[0]}{1-A[0]}\)。
显然我们只需要递推计算A与B就能求出答案(废话)。
那么稍加变形得到A,B的递推式如下
\[f[i] = \sum(p[k] \times A[i + k] \times f[0] + p[k] \times B[i + k]) + f[0] * p[0] + 1\]
\[=(\sum(p[k] \times A[i + k]) + p[0]) f[0] + \sum(p[k] \times B[i + k]) + 1\]
\[A[i]=\sum(p[k] \times A[i+k])+p[0],B[i]=\sum(p[k] \times B[i+k])+1\]
那么求A, B就变得非常简单了QAQ。
进阶
对于未知状态彻底成环又无法转化的情况,只能使用高斯消元。
咕咕咕。
技巧
1、变形递推式消去后效性
2、只求部分值可以分离常数
3、成环使用高斯消元
咕咕咕,(flag:预计本周补完)。
[算法]概率与期望DP的更多相关文章
- 【算法学习笔记】概率与期望DP
本文学习自 Sengxian 学长的博客 之前也在CF上写了一些概率DP的题并做过总结 建议阅读完本文再去接着阅读这篇文章:Here 前言 单纯只用到概率的题并不是很多,从现有的 OI/ACM 比赛中 ...
- 【CodeForces】913 F. Strongly Connected Tournament 概率和期望DP
[题目]F. Strongly Connected Tournament [题意]给定n个点(游戏者),每轮游戏进行下列操作: 1.每对游戏者i和j(i<j)进行一场游戏,有p的概率i赢j(反之 ...
- 【BZOJ-4008】亚瑟王 概率与期望 + DP
4008: [HNOI2015]亚瑟王 Time Limit: 20 Sec Memory Limit: 512 MBSec Special JudgeSubmit: 832 Solved: 5 ...
- 概率和期望dp
概率和期望dp 概率和期望好神啊,完全不会. 网上说概率要顺着推,期望要逆着推,然而我目前做的概率期望题正好都与此相反2333 概率: 关于概率:他非常健康 初中概率题非常恐怖.现在来思考一道题: ...
- 概率与期望dp相关
概率与期望dp 概率 某个事件A发生的可能性的大小,称之为事件A的概率,记作P(A). 假设某事的所有可能结果有n种,每种结果都是等概率,事件A涵盖其中的m种,那么P(A)=m/n. 例如投掷一枚骰子 ...
- 概率及期望DP小结
资源分享 26 个比较概率大小的问题 数论小白都能看懂的数学期望讲解 概念 \(PS\):不需要知道太多概念,能拿来用就行了. 定义 样本(\(\omega\)):一次随机试验产生的一个结果. 样本空 ...
- 【BZOJ-3450】Tyvj1952Easy 概率与期望DP
3450: Tyvj1952 Easy Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 468 Solved: 353[Submit][Status] ...
- BZOJ 3566 [SHOI2014]概率充电器 ——期望DP
期望DP. 补集转化,考虑不能被点亮的情况, 然后就是三种情况,自己不能亮,父亲不能点亮它,儿子不能点亮它. 第一次计算比较容易,第二次计算的时候需要出去第一次的影响,因为一条线只能传导一次 #inc ...
- BZOJ 1444 [JSOI2009]有趣的游戏 (AC自动机、概率与期望DP、矩阵乘法)
诶这题洛谷居然没有??? 题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1444 题解: 我见到主要有三种做法. 一是矩阵乘法.设\(d ...
随机推荐
- 普通帐号起redis
wget http://download.redis.io/releases/redis-4.0.11.tar.gz $ tar xzf redis-4.0.11.tar.gzmv redis-4.0 ...
- String,StringBuffer,StringBulider 三者的区别
1.String 是字符串常量,StringBuffer 和StringBuilder 是字符串变量. 2.运行速度 StringBuilder > StringBuffer > Stri ...
- JavaScript学习总结(一)——闭包、对象、函数
一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div, ...
- 服务器被植入木马,CPU飙升200%
线上服务器用的是某云的,欢快的完美运行着Tomcat,MySQL,MongoDB,ActiveMQ等程序.突然一则噩耗从前线传来:网站不能访问了! 此项目是我负责,我以150+的手速立即打开了服务器, ...
- 基于XML配置Spring的自动装配
一.了解Spring自动装配的方式 采用传统的XML方式配置Bean组件的关键代码如下所示 <bean id="userMapper" class="edu.cn. ...
- java--编码规范易漏
1:命名规范 类名用大驼峰式 参数变量·函数·成员变量·局部变量 小驼峰式 常亮命名全部大些单词用_隔开 抽象类用Abstract开头·异常类用Excetpion结尾·测试类用Test结尾 *POJO ...
- 开启linux服务器防火墙
启用ufwsudo ufw enablesudo ufw default deny运行以上两条命令后,开启了防火墙,并在系统启动时自动开启.关闭所有外部对本机的访问,但本机访问外部正常. 开启和禁用s ...
- python笔记——dict和set
学习廖雪峰python3笔记_dict和set dict__介绍 dict --> dictionary(字典)--> python内置 --> 使用键-值(key-value)存储 ...
- msql 事务
START TRANSACTION delete from t_emp delete from t_deptcommit START TRANSACTION delete from t ...
- 记一次神奇的codeforces
今天有一场codeforces的div3,时间挺合适,于是就想打.结果发现rating超过1600就不能报名.虽然shzr好久不打CF了而且很菜,但是毕竟还是到了1600的,于是和ZUTTER_一起用 ...