随笔分类 -  DP

摘要:设 $f_i$ 为 $i \to t$ 的期望步数 转移方程为 $f_u = \sum_{u \to v} \dfrac{f_v}{outdeg_u} + 1$ 先tarjan缩点 然后强连通分量内进行高斯消元即可 把出边到的点不在强连通分量内的 $\dfrac{f_v}{outdeg_u}$ 作为 阅读全文
posted @ 2020-03-26 21:47 Mrzdtz220 阅读(109) 评论(0) 推荐(0)
摘要:设 $f_i$ 为前 $i$ 位能由多少种方案组成 那么要么就是正常的得到方式,可以由 $f_{i 1}$ 转移来,方案数为 $f_{i 1} \times cnt_{s_i}$ 错误的得到方式就由 $f_{i 2}$ 转移得来,方案数为 $f_{i 2} \times cnt_{s_{i 1}, 阅读全文
posted @ 2020-03-19 21:45 Mrzdtz220 阅读(415) 评论(0) 推荐(0)
摘要:要求左右选出来的数满足,比 $b$ 大的等于比 $b$ 小的 从 $b$ 向左右分别拓展 向左遇到一个比 $b$ 大的就 1,比 $b$ 小的就 +1 向右拓展就反过来统计 最后答案就是 $\sum left_i \times right_i$ 阅读全文
posted @ 2020-03-19 13:32 Mrzdtz220 阅读(122) 评论(0) 推荐(0)
摘要:一:对B串建后缀自动机,暴力枚举A子串的起始位置,匹配不上则更新答案 二:对B串建序列自动机,暴力枚举A子串的起始位置,匹配不上则更新答案 三:对B串建后缀自动机,$f_{i,j}$ 为考虑A串前 $i$ 个字符,当前在B串的SAM上的状态为 $j$ 的最小值,进行DP 四:对B串建序列自动机,$f 阅读全文
posted @ 2020-03-18 19:03 Mrzdtz220 阅读(113) 评论(0) 推荐(0)
摘要:考虑升序序列对答案的贡献,最后只需要乘上 $n!$ 即可 $f_{i,j}$ 表示已经放了 $i$ 个数,且最大值不超过 $j$ 的方案数 $f_{i,j}=j \times f_{i 1,j 1}+f_{i,j 1}$ 那么答案为 $f_{n,A}$ 不难 发现 $f_{n,i}$ 是关于 $i$ 阅读全文
posted @ 2020-03-17 16:11 Mrzdtz220 阅读(117) 评论(0) 推荐(0)
摘要:考虑倒推整个过程 $a_n$,$a_{n 1}$ 的值可以任意确定 从 $a_{n 2}$ 开始不能选的为后面的数最大值和最小值组成的区间 $dp_{i,l, r}$ 表示当前填第 $i$ 位数字,不能填的区间为 $[l,r]$ 但是其实在填第 $n 2$ 位的时候可以填 $a_n$ 的取值 而且存 阅读全文
posted @ 2020-03-13 14:10 Mrzdtz220 阅读(109) 评论(0) 推荐(0)
摘要:设 $dp_{i,j}$ 为长度为 $i$ 的排列,逆序对数有 $j$ 个的方案数 那么 $dp_{i,j}=\sum\limits_{k=\max\{0,j (i 1)\}}^j dp_{i 1, k}$ 考虑每个新加入的数插入的位置对逆序对数的影响即可得到上述转移方程 通过前缀和优化能实现 $O 阅读全文
posted @ 2020-03-13 10:07 Mrzdtz220 阅读(99) 评论(0) 推荐(0)
摘要:暴力的想法是设五维数组进行DP 但是发现如果知道纵坐标及步数就能知道横坐标 那么就是需要三维 再把步数进行滚动即可 阅读全文
posted @ 2020-03-10 21:10 Mrzdtz220 阅读(97) 评论(0) 推荐(0)
摘要:首先根据旋转同构,可以用burnside 设 $dp(d)$ 为长度为 $d$ 的环,旋转不同构的方案 那么答案为 $\dfrac{\sum \limits_{i=0}^{n 1} dp(\gcd(n, i))}{n}=\sum \limits_{d | n} \dfrac{dp(d)\varphi 阅读全文
posted @ 2020-03-06 16:23 Mrzdtz220 阅读(139) 评论(0) 推荐(0)
摘要:如果不新加边,那么给每个点选一条入边即可,答案为 $\prod \limits_{i=2}^n in\_degree_i$ 加入新边后,仍按上面的方法统计答案,但是原图中可能出现了环,如果出现环,那么边 $x \to y$ 一定就在环上 那么就统计选了 $y \to x$ 的路径的方案数 设 $dp 阅读全文
posted @ 2020-03-06 09:18 Mrzdtz220 阅读(88) 评论(0) 推荐(0)
摘要:暴力枚举 T 的每一位放什么 每一位之间放什么不影响,但是包含什么字符串会互相影响 那么dp状态就得加上字符串的包含情况 $dp_{i, s}$ 表示当前放第 $i$ 位, $s$ 为包含的字符串集合的方案数 $dp_{0, 2^n 1} = 1$ 转移需要预处理一个数组 $state_{i, j} 阅读全文
posted @ 2020-03-03 17:44 Mrzdtz220 阅读(116) 评论(0) 推荐(0)
摘要:感觉是sdoi2015序列统计的弱化版... 至少用一个质数就用全集减去只用合数解决 $dp_{i, j}$ 表示已经放了 $i$ 个数,当前和为 $j \pmod p$ 转移方程 $dp_{i, j} = \sum \limits_{x+y=j}dp_{i 1,x} \times c_y$ 看成生 阅读全文
posted @ 2020-02-28 14:31 Mrzdtz220 阅读(82) 评论(0) 推荐(0)
摘要:考虑从 $5$ 下手 把状态设为 $f_{a_1,a_2,a_3,a_4,a_5,type}$ 表示当前剩下 $i$ 次涂色机会的颜色种类数为 $a_i$,而最后一个颜色用的是上一轮剩下 $type$ 次涂色机会的 记忆化搜索即可 对于这种数据范围小的,可以考虑多设几个维度方便DP 阅读全文
posted @ 2020-02-22 17:32 Mrzdtz220 阅读(92) 评论(0) 推荐(0)
摘要:DP题从来就是不会的。。。 对于波浪序列看成若干条链,s,t 不计入链中,最终序列就是 $0$ 条链 设 $f_{i,j}$ 为插入前 $i$ 个数之后有 $j$ 条链的情况 最后加入 $n$ 只能合并 s,t 所在的链,而他们不在链中 所以答案就是 $f_{n 1,0}$ 若 $i$ 不是 s 或 阅读全文
posted @ 2020-02-22 11:31 Mrzdtz220 阅读(136) 评论(0) 推荐(0)
摘要:同 "BZOJ3450" $(x+1)^3 x^3 = 3x^2+3x+1$ 同时维护期望长度的平方,期望长度即可 阅读全文
posted @ 2020-02-20 13:13 Mrzdtz220 阅读(75) 评论(0) 推荐(0)
摘要:根据期望的线性性,可以求每个字符对答案的贡献 而每个字符对答案的贡献跟其期望后缀长度有关 设 $l_i$ 表示以 $i$ 结尾的连续 $o$ 的期望长度 若 $s_i = o$,$l_i = l_{i 1} + 1$ 若 $s_i = x$,$l_i = 0$ 若 $s_i = ?$,$l_i = 阅读全文
posted @ 2020-02-20 13:11 Mrzdtz220 阅读(79) 评论(0) 推荐(0)
摘要:先求出概率 设 $f_{i,j}$ 表示第 $i$ 秒电梯上有 $j$ 个人的概率 则 $f_{0,0}=1$ $f_{i + 1, j + 1} = f_{i, j} \times p$ $f_{i + 1, j} = f_{i, j} \times (1 p)$ $f_{i+1,n}=f_{i, 阅读全文
posted @ 2020-02-20 00:43 Mrzdtz220 阅读(82) 评论(0) 推荐(0)
摘要:定义 $f_u$ 为 $u \to n$ 的期望长度 拓扑排序之后得到拓扑序从后往前dp $f_u = \sum \limits_{(u,v) \in E}\dfrac{f_v + cost_{u,v}}{Outdeg_u}$ 阅读全文
posted @ 2020-02-19 19:00 Mrzdtz220 阅读(97) 评论(0) 推荐(0)
摘要:期望dp一般逆推,因为终点不确定,而起点确定 那么这道题就可以定义状态 $f_{i,j}$ 为第 $i$ 次抛出宝物到结束种类集合为 $j$ 的期望收益 则答案为 $f_{0,0}$ 而dp过程就可以从后往前叠加贡献 复杂度 $O(kn2^n)$ 阅读全文
posted @ 2020-02-19 18:35 Mrzdtz220 阅读(78) 评论(0) 推荐(0)
摘要:$dp_{i,j,0}$ 表示 $[i,j]$ 中不包含 $M$ 的最优值 $dp_{i,j,1}$ 表示 $[i,j]$ 中包含若干个 $M$ 的最优值 $dp_{i,j,0}=\min\{dp_{i,k,0}+j k\}$ 若 $[i,j]$ 是一个复制的串,$dp_{i,j,0}=\min\{ 阅读全文
posted @ 2020-02-19 15:01 Mrzdtz220 阅读(45) 评论(0) 推荐(0)