概率dp
Neo__Z
这个作者很懒,什么都没留下…
展开
-
NOIP2016 T3 换教室
解题报告:noip首次考期望dp先用floyd预处理一下。 设f[i][j][k]表示第i个时间段,选了j个教室要申请(不一定成功),k表示i申请或不申请。 我们从i推到i+1,如果要推到f[i+1][j][0]的话,那么第i+1个时间段肯定在a[i+1]。这个可以从i的0状态和1状态推过来,如果从0推过来,那么i时间段肯定在a[i]这个地方,那么期望是d[a[i]][a[i+1]],概率是1。如果原创 2017-07-28 11:52:32 · 283 阅读 · 0 评论 -
loj#2540. 「PKUWC 2018」随机算法【概率dp+状压dp】
传送门解题思路:朴素的dp是O(n3n)O(n3n)O(n3^n),即每个点有三种状态:没考虑过,考虑了且在独立集中,考虑了但没在独立集中,需要优化。设 f[i][s]f[i][s]f[i][s] 表示考虑前 iii 个点,独立集为 sss 的方案数,主要的问题就在于对于一个当前轮不能加入独立集的点,是否在之前就被考虑过,但注意到考虑了但没在独立集中的点数我们是知道的,即i−bin[s...原创 2018-05-29 10:23:43 · 548 阅读 · 0 评论 -
loj#2537. 「PKUWC 2018」Minimax【概率dp+线段树合并】
传送门解题思路:感觉自己当时好菜啊……设 fu,ifu,if_{u,i} 为 uuu 选 iii 的概率,假如是从左子树转移来的,则fu,i=fl,i(p∑fr,j<i+(1−p)∑fr,j>i)fu,i=fl,i(p∑fr,j<i+(1−p)∑fr,j>i)f_{u,i}=f_{l,i}(p\sum f_{r,ji}) 然后想到线段树合并,节点表示选当前区...原创 2018-05-29 07:53:38 · 1127 阅读 · 0 评论 -
NOI模拟 奥义商店【分块+概率dp】
题目描述: 解题思路:#include<bits/stdc++.h>#define ll long longusing namespace std;int getint(){ int i=0,f=1;char c; for(c=getchar();(c!='-')&&(c<'0'||c>'9');c=getcha...原创 2018-05-02 21:39:19 · 309 阅读 · 0 评论 -
bzoj4944: [Noi2017]泳池【概率dp+特征多项式】
题目大意:有一个1001×n1001×n1001×n的的网格,每个格子有qqq的概率是安全的,1−q1−q1−q的概率是危险的。 定义一个矩形是合法的当且仅当: 1.这个矩形中每个格子都是安全的 2.必须紧贴网格的下边界 问你最大的合法子矩形大小恰好为kkk的概率是多少。解题思路:首先求恰好为kkk的概率一般转化为求≤k≤k\le k的概率减去≤k−1≤k−1\le k-1...原创 2018-04-09 20:05:48 · 668 阅读 · 0 评论 -
bzoj5004 开锁魔法II【概率dp&&生成函数】
题目大意:给一个n的点的图,每个点只有一条出边和入边(组成了若干环),现在从中选k个点,问每个环至少选中一个点的概率。 n、k<=300;解题思路:大概的思路是求可行方案数除以总方案数(nk)(nk)\binom{n}{k}。设f[i][j]f[i][j]f[i][j]表示前i个环选了j个点的方案数,则有f[i][j]=f[i−1][j−s]∗(size[i]s)f[i][...原创 2018-03-15 10:08:13 · 351 阅读 · 0 评论 -
bzoj2510 弱题 【期望dp+循环矩阵快速幂】
解题思路:很容易想到每一轮的dp方程: a[i]=(1−1m)a[i]+1ma[i−1=0?n:i−1]a[i]=(1-\frac{1}{m})a[i]+\frac{1}{m}a[i-1=0?n:i-1]考虑矩阵快速幂,可以O(n3log2k)O(n^3log_2k)求解,但仍会TLE。注意到转移矩阵是一个循环矩阵,即每一行都是上一行平移一格得到(列也是如此),而循环矩阵的性质有:原创 2018-01-05 18:00:48 · 336 阅读 · 0 评论 -
bzoj3566 概率充电器【树形期望概率dp】
解题思路:一个节点要么被父亲充上电,要么儿子或自己充上电。 我们发现求充得上电的概率要用概率加法,有点麻烦,所以可以求一个点充不上电的概率,也就是任何一个来源都不能有电,概率直接相乘即可。设f[i]f[i]表示由son[i]son[i]不能充电且自己直接充不上电的概率; 设g[i]g[i]表示由父亲充不上电的概率。 设h[i]h[i]表示由ii不能给父亲充电的概率,要么是ii就充不上电,要么(原创 2018-01-03 17:41:27 · 428 阅读 · 0 评论 -
tyvj1864 守卫者的挑战【概率dp】
解题思路:注意到输赢与挑战顺序无关,所以我们可以先把能加的背包加了,看是否够装得到的碎片即可。所以设f[i][j][k]表示挑战了i关,赢了j场,背包剩余容积为k的概率,注意到k最多为n就够了,而照着先背包后碎片的顺序,只要k<0该状态即停止转移。分输赢转移即可。#include<bits/stdc++.h>#define ll long longusing namespace std;int原创 2018-01-02 22:16:05 · 292 阅读 · 0 评论 -
NOIP模拟 赌博游戏【概率dp】
题目描述最近西雅图的高中校园里流行这样一个游戏。我们有一个骰子,这个骰子有M个面,分别写着1..M,并且是个公平的骰子,换句话说,一次投掷时每个面朝上的概率是相同的。游戏的组织者使用这个骰子进行N次投掷,并且告诉玩家点数v出现了至少一次。那么玩家需要猜测N次投掷的点数之和。如果猜对了,就赢得了这个游戏。小宇也喜欢玩这个游戏。在一次游戏中,她猜测了一个正整数sum,于是她想知道猜对的概率是多少。输入格原创 2017-11-02 18:51:33 · 1015 阅读 · 0 评论 -
NOIP模拟 取书问题【概率期望dp】
题目描述:有n个同学坐成一列,按从前往后的顺序传n本书,第i本数是第i新的,其中第i个同学会从n-i+1本课本中选一本并把剩下的书传给后面的一位同学,第i个同学在挑选课本的时候满足 如下过程: 1.如果只剩一本书,则一定拿走,否则转步骤2; 2.从剩下的数中抽出最新的一本。 3.有a[i]的概率选择这本书并结束选择,1-a[i]个概率将这本书传给后面的同学并回到步骤1。 现在问最后一名同学拿原创 2017-11-08 08:33:13 · 438 阅读 · 0 评论 -
poj3744 Scout YYF I 【概率dp+矩阵优化】
解题思路:很容易想到设dp[i]表示安全走到i的概率,则dp[i]=p∗*dp[i-1]+(1-p)∗*dp[i-2],然后有地雷的地方概率为0,最后dp[maxpos+1]就是答案; 但数据范围是[1, 100000000],显然过不了。注意到地雷只有10个,所以可以把地图分为10段,每两个地雷之间的dp用矩阵优化就可以过了。#include<iostream>#include<cstdio>原创 2017-10-28 08:34:08 · 368 阅读 · 0 评论 -
loj#2541. 「PKUWC 2018」猎人杀【容斥+概率dp+生成函数+分治FFT】
传送门解题思路:思路巧妙……原题中每轮概率都在变化,一脸不可做,但注意到对问题的转化: 我们杀人后将其打上标记,但还是可以以他为目标重复选,直到选到一个未打标记的人。 这和原问题等价,而且这样每轮选中每人的概率都不变。考虑容斥,枚举强制在1号后面死的人,即1号至少在这些人前面,令 A=∑wiA=∑wiA=\sum w_i,SSS 为枚举到的人的 wiwiw_i 之和,ttt 为...原创 2018-05-29 15:14:59 · 1742 阅读 · 0 评论