随笔分类 -  动态规划—期望型

摘要:题意 "题目链接" 从$[1, M]$中随机选数,问使得所有数gcd=1的期望步数 Sol 一个很显然的思路是设$f[i]$表示当前数为$i$,期望的操作轮数,转移的时候直接枚举gcd $f[i] = 1 + \frac{ \sum_{j=1}^N f[gcd(i, j)]}{N}$ 然后移一下项就 阅读全文
posted @ 2019-03-22 15:24 自为风月马前卒 阅读(628) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 一条重要的性质:如果某个区间覆盖了另一个区间,那么该区间是没有用的(不会对最大值做出贡献) 首先不难想到枚举最终的答案$x$。这时我们需要计算的是最大值恰好为$x$的概率。 发现不是很好搞,我们记$P(x)$表示最大值$\leqslant x$的概率,那么恰好为$x$的概 阅读全文
posted @ 2019-02-25 10:05 自为风月马前卒 阅读(461) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 首先不难想到一种暴力dp,设$f[i][a][b][c]$表示还有$i$轮没打,场上有$a$个1血,$b$个2血,$c$个三血 发现状态数只有$s = 166$个,复杂度为$O(ns)$ 矩乘优化一下复杂度为$O(s^3 logn T)$,还是过不去。 因为每次询问都是独 阅读全文
posted @ 2019-02-13 08:03 自为风月马前卒 阅读(408) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 和cf上的一道题几乎一摸一样 首先根据期望的线性性,可以转化为求每个点的期望打开次数,又因为每个点最多会被打开一次,只要算每个点被打开的概率就行了 设$anc[i]$表示$i$的反图中能到达的点集大小,答案等于$\sum_{i = 1}^n \frac{1}{anc[i] 阅读全文
posted @ 2019-01-16 10:32 自为风月马前卒 阅读(358) 评论(0) 推荐(1)
摘要:题意 "题目链接" Sol 设$f[i]$表示从$i$走到$T$的期望步数 显然有$f[x] = \sum_{y} \frac{f[y]}{deg[x]} + 1$ 证明可以用全期望公式。 那么我们可以把每个强联通分量里的点一起高斯消元,就做完了。 (warning:BZOJ没有C++11,但是下面 阅读全文
posted @ 2019-01-14 17:24 自为风月马前卒 阅读(384) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 设$f[i][j]$表示Petya在$i$,$Vasya$在$j$的概率,我们要求的是$f[i][i]$ 直接列方程高斯消元即可,由于每个状态有两维,因此时间复杂度为$O(n^6)$ 注意不能从终止节点转移而来 cpp include using namespace st 阅读全文
posted @ 2019-01-14 15:53 自为风月马前卒 阅读(468) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 开始想的dp,发现根本不能转移(貌似只能做链) 根据期望的线性性,其中$ans = \sum_{1 f(x)}$ $f(x)$表示删除$x$节点的概率,显然$x$节点要被删除,那么它的祖先都不能被删除,因此概率为$\frac{1}{deep[x]}$ cpp includ 阅读全文
posted @ 2019-01-08 20:13 自为风月马前卒 阅读(504) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 设$f[i]$表示炸弹到达$i$这个点的概率,转移的时候考虑从哪个点转移而来 $f[i] = \sum_{\frac{f(j) (1 \frac{p}{q})}{deg(j)}}$ $f[1]$需要+1(炸弹一开始在1) cpp // luogu judger enabl 阅读全文
posted @ 2019-01-05 19:49 自为风月马前卒 阅读(303) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol 首先考虑当$n = p^x$,其中$p$是质数,显然它的因子只有$1, p, p^2, \dots p^x$(最多logn个) 那么可以直接dp, 设$f[i][j]$表示经过了$i$轮,当前数是$p^j$的概率,转移的时候枚举这一轮的$p^j$转移一下 然后我们可以把每 阅读全文
posted @ 2019-01-05 15:02 自为风月马前卒 阅读(316) 评论(0) 推荐(1)
摘要:题意 "题目链接" Sol 考虑直接对询问的集合做MinMax容斥 设$f[i][sta]$表示从$i$到集合$sta$中任意一点的最小期望步数 按照树上高斯消元的套路,我们可以把转移写成$f[x] = a_x f[fa] + b_x$的形式 然后直接推就可以了 "更详细的题解" cpp inclu 阅读全文
posted @ 2019-01-02 16:47 自为风月马前卒 阅读(323) 评论(0) 推荐(0)
摘要:题意 "题目链接" Sol mdzz这题真的太恶心了。。 首先不难看出这就是个高斯消元解方程的板子题 $f[x] = \sum_{i = 1}^n f[to(x + i)] p[i] + ave$ $ave$表示每次走的期望路程 然后一件很恶心的事情是可以来回走,而且会出现$M N$的情况(因为这个 阅读全文
posted @ 2019-01-02 16:46 自为风月马前卒 阅读(481) 评论(0) 推荐(0)
摘要:题意 "题目链接" $N$个物品,每次得到第$i$个物品的概率为$p_i$,而且有可能什么也得不到,问期望多少次能收集到全部$N$个物品 Sol 最直观的做法是直接状压,设$f[sta]$表示已经获得了$sta$这个集合里的所有元素,距离全拿满的期望,推一推式子直接转移就好了 主程序代码: cpp 阅读全文
posted @ 2019-01-01 23:08 自为风月马前卒 阅读(409) 评论(0) 推荐(2)
摘要:题意 "题目链接" Sol 多年以后,我终于把这题的暴力打出来了qwq 好感动啊。。 刚开始的时候想的是: 设$f[i][j]$表示第$i$轮, 第$j$个人血量的期望值 转移的时候若要淦这个人,那么$f[i][j] = (f[i 1][j] + 1) p + (f[i 1][j]) (1 p)$ 阅读全文
posted @ 2018-10-23 08:44 自为风月马前卒 阅读(365) 评论(0) 推荐(0)
摘要:题意 ~~[题目链接]~~版权原因就不发了。。 给出一棵树,求出任意两点之间期望距离的最大值 Sol 比较清真的一道题吧。。 设$f[x]$表示从$x$走到$x$的父亲的期望步数 $g[x]$表示从父亲走来的期望步数 $d[x]$表示$x$节点的度数 不难得到方程$f[x] = \sum_{to \ 阅读全文
posted @ 2018-10-15 18:04 自为风月马前卒 阅读(462) 评论(0) 推荐(1)
摘要:题意 题目链接 翻译来自神仙yyb Sol 又是一道神仙题。。 我开始的思路是枚举空位,但是还是不能做,GG 标算过于神仙,其中一些细节我也理解不了 题目给出的实际是一个首项为$d$,公差为$x$的等差数列 $sum = 2dn + \frac{2n(2n - 1)x}{2}$ 此时的期望为$\fr 阅读全文
posted @ 2018-09-26 15:52 自为风月马前卒 阅读(762) 评论(0) 推荐(3)
摘要:题意 岛上有三个物种:剪刀$s$、石头$r$、布$p$ 其中剪刀能干掉布,布能干掉石头,石头能干掉剪刀 每天会从这三个物种中发生一场战争(也就是说其中的一个会被干掉) 问最后仅有$s/r/p$物种生存的概率 Sol 还是想复杂了啊,我列的状态时$f[i][j], g[i][j],t[i][j]$分别 阅读全文
posted @ 2018-09-02 17:12 自为风月马前卒 阅读(483) 评论(0) 推荐(0)
摘要:题意 $n \leqslant 10^5$ Sol 随便推一推就好了吧。。 $f[i] = \frac{f[i] + f[i +1] + \dots f[n]}{n - i + 1} + 1$ 移一下项,然后化一化,就做完了。。 然而这题卡空间MMP 阅读全文
posted @ 2018-09-02 10:56 自为风月马前卒 阅读(366) 评论(0) 推荐(0)
摘要:题意 抄袭自https://www.cnblogs.com/Paul-Guderian/p/7624039.html 正在玩飞行棋。输入n,m表示飞行棋有n个格子,有m个飞行点,然后输入m对u,v表示u点可以直接飞向v点,即u为飞行点。如果格子不是飞行点,扔骰子(1~6等概率)前进。否则直接飞到目标 阅读全文
posted @ 2018-08-24 08:51 自为风月马前卒 阅读(280) 评论(0) 推荐(0)
摘要:题意 抄袭自https://www.cnblogs.com/Paul-Guderian/p/7624039.html 有n个房间,由n-1条隧道连通起来,形成一棵树,从结点1出发,开始走,在每个结点i都有3种可能(概率之和为1):1.被杀死,回到结点1处(概率为ki)2.找到出口,走出迷宫 (概率为 阅读全文
posted @ 2018-08-24 08:30 自为风月马前卒 阅读(397) 评论(0) 推荐(1)
摘要:题意 抄袭自https://www.cnblogs.com/Paul-Guderian/p/7624039.html 输入n表示共有n个地雷(0<n<=10),并且输入每个地雷所在的位置ai(ai为不大于108的正整数)。现在求从1号位置出发越过所有地雷的概率。用两种行走方式:①走一步②走两步(不会 阅读全文
posted @ 2018-08-23 11:13 自为风月马前卒 阅读(227) 评论(0) 推荐(0)

Contact with me