「Tricks」整体DP】的更多相关文章

数位dp,今天学长讲的稍玄学,课下花了一会时间仔细看了一下,发现板子是挺好理解的,就在这里写一些: 数位dp主要就是搞一些在区间中,区间内的数满足题目中的条件的数的个数的一类题,题目一般都好理解,这时候就要使用今天介绍的数位dp; 比如这道例题: 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数字各出现了多少次. 求出在给定区间 [A,B] 内,符合条件 f(i) 的数 i 的个数.条件 f(i) 一般与数的大小无关,而与数的组成有关 由于数是按位dp,数的大小对复杂度的影响很小,这就…
目录 写在前面 引入 求解 特判优化 代码 例题 「ZJOI2010」数字计数 「AHOI2009」同类分布 套路题们 「SDOI2014」数数 写在最后 写在前面 19 年前听 zlq 讲课的时候学的东西,当时只会抄板子,现在来重学一波= = 一个板子水一天题(不事 引入 「SCOI2009」Windy 数 给定参数 \(l,r\),求 \([l,r]\) 中不含前导零且相邻两个数字之差至少为 \(2\) 的正整数的个数. \(1\le l\le r\le 2\times 10^9\). 1S…
集中做完了插头$dp$ 写一下题解. 一开始学的时候还是挺蒙的. 不过后来站在轮廓线$dp$的角度上来看就简单多了. 其实就是一种联通性$dp$,只不过情况比较多而已了. 本来转移方式有两种.逐行和逐格转移. 不过逐行转移因为分类太多所以被舍弃了. 一般的插头$dp$采用逐格转移. 插头表示已经进入当前格子的状态,而并不是将要进入的状态. 状态的表示方式常见的有两种:最小表示法和括号表示法. 括号表示法不如说是广义括号表示法的特殊一种情况,每个插头也就是左右括号就是表示两个相匹配的回路部分,而最…
传送门 思路 大部分是感性理解,不保证完全正确. 不能算是神仙题,但我还是不会qwq 这题显然就是求:把每一棵树分成若干条链,然后把链拼成一个环,使得相邻的链不来自同一棵树,的方案数.(我才不告诉你们我这一行都没推出来呢) 可以发现后面那步只和每棵树被分成了几段有关,所以第一步可以先求出每棵树分成几段的方案数. 具体方法:设\(dp_{x,i,0/1/2}\)表示\(x\)子树被填满,共用\(i\)条链,\(x\)所在的链处于 {只有\(x\)一个点/有一条从下面到\(x\)的链/有从下到\(x…
传送门 思路 首先有一个\(O(n^2)\)的简单DP:设\(dp_{x,w}\)为\(x\)的权值为\(w\)的概率. 假设\(w\)来自\(v1\)的子树,那么有 \[ dp_{x,w}=dp_{v1,w}\times (p\times \sum_{w'>w}dp_{v2,w'}+(1-p)\sum_{w'<w}dp_{v2,w'}) \] 其中\(p\)表示\(x\)选较小权值的概率. 由于每个点的状态数只有子树中的叶子个数,可以考虑线段树合并来优化这一DP过程. merge(k1,k2…
\(\mathcal{Description}\)   Link.   给定一棵 \(n\) 个结点的带权树,\(m\) 次单点点权修改,求出每次修改后的带权最大独立集.   \(n,m\le10^5\). \(\mathcal{Solution}\)   不考虑修改,显然 DP.令 \(f(u,0/1)\) 表示选 / 不选结点 \(u\),\(u\) 子树内的带权最大独立集.那么: \[\begin{cases}f(u,0)=\sum_v\max\{f(v,0),f(v,1)\}\\f(u,…
题目:https://loj.ac/problem/2552 70 分就是 f[i][j] 表示第 i 个人血量为 j 的概率.这部分是 O( n*Q ) 的:g[i][j][0/1] 表示询问的人中,前/后 i 个人,存活 j 个人的概率.做 g[ ][ ] 是 n^2 的,算答案是 n3 的. 考虑 g[ i ] 表示询问的人中有 i 个存活的概率.因为每个人加入 g[ ] 的顺序无关,所以可以每次 O(n) 地从g[ ] 里剔除第 i 个人的贡献. 令第 i 个人不存活的概率是 u ,存活…
目录 写在前面 定义 引入 构造 暴力 字典图优化 匹配 在线 离线 复杂度 完整代码 例题 P3796 [模板]AC 自动机(加强版) P3808 [模板]AC 自动机(简单版) 「JSOI2007」文本生成器 「BJOI2019」奥术神杖 「SDOI2014」数数 「NOI2011」阿狸的打字机 写在最后 写在前面 这篇文章的主体是在没网的悲惨状况下完成的. 前置知识:Trie 树,DFA,KMP 字符串匹配算法. 请务必深刻理解! 定义 \(|\sum|\):字符集大小,在大多数题目中都等…
题目:https://loj.ac/problem/2473 https://www.luogu.org/problemnew/show/P4365 参考:https://blog.csdn.net/xyz32768/article/details/82952313 https://zhang-rq.github.io/2018/05/04/%E4%B9%9D%E7%9C%81%E8%81%94%E8%80%832018-%E7%A7%98%E5%AF%86%E8%A2%AD%E5%87%BBC…
「SDOI2016」储能表(数位dp) 神仙数位 \(dp\) 系列 可能我做题做得少 \(QAQ\) \(f[i][0/1][0/1][0/1]\) 表示第 \(i\) 位 \(n\) 是否到达上界 \(m\) 是否到达上界 \(k\) 是否到达下界.我用一个 \(pair\) 存,\(first\) 记录方案数,\(second\) 记录所有的和. \(ans=(P.S-k*P.F)\%mod\) 那么我们每次枚举该位为 \(0/1\) 就可以转移了,逐位计算贡献. \(Code\ Belo…