摘要: 概率和期望 期望 常见技巧与知识 如果当前步数通往下一步时,有 \(p\) 的概率原地打转,则走到下一步的期望步数为 \(\frac{1}{1-p}\) 如果在进行某个操作时达到要求则停止,求期望步数,则可设达到要求后不停止,但不耗步数,保持问题的对称性 求步数的期望:\(ans=E[\text{步 阅读全文
posted @ 2024-02-14 22:26 KellyWLJ 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 高维前缀和(SOS DP) 通常求二维前缀和,用容斥来求 但其实,完全可以先做一遍行的前缀和,再做一遍列的前缀和 拓展到 \(k\) 维也是如此,可以在 \(O(nk)\) 的复杂度求前缀和 但怎么和 DP 扯上关系? 可以把第 \(i\) 维当作阶段,每一维的具体信息是状态 先枚举阶段,表示当前固 阅读全文
posted @ 2024-02-14 22:24 KellyWLJ 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 思路:按区间的 \(len\) 从小到大 DP,枚举左端点,算出右端点,再枚举中间的分界点转移 有可能是向左右两端各扩展 \(1\) 步 还有时要记录在左/右端点,分开转移 把问题划分为区间长度更短的最优子结构 注意 \(len=1\) 时初始化及边界 P4342 [IOI1998]Polygon 阅读全文
posted @ 2024-02-14 22:23 KellyWLJ 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 以 P5785 [SDOI2012]任务安排 为例 朴素方程 其实也没那么简单,第一眼想法是设 \(f(i,k)\) 表示以 \(i\) 为结尾,共分了 \(k\) 段的总方案数 \[f(i,k)=\min_{j=0}^{i-1} f(j,k-1)+(sumc_i-sumc_j)\cdot( sum 阅读全文
posted @ 2024-02-14 22:21 KellyWLJ 阅读(8) 评论(0) 推荐(0) 编辑
摘要: slope trick 对于一类 DP 问题,DP 状态是二维的 \(f_{i,j}\),且 \(f_i\) 可以看作一个关于 \(j\) 的线性的连续凸分段函数 转移时可以直接维护这个函数而优化复杂度 维护操作 以下凸函数为例 我们维护第一段函数的斜率 \(k\),用数据结构维护出斜率每变化 \( 阅读全文
posted @ 2024-02-14 22:19 KellyWLJ 阅读(35) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-02-14 22:14 KellyWLJ 阅读(0) 评论(0) 推荐(0) 编辑
摘要: CF 乱做笔记 阅读全文
posted @ 2024-02-14 22:14 KellyWLJ 阅读(1) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-02-14 22:13 KellyWLJ 阅读(4) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-02-14 22:12 KellyWLJ 阅读(1) 评论(0) 推荐(0) 编辑
摘要: CF513E2 Subarray Cuts 一开始还以为有什么神仙性质,找了半天发现性质不好,要考虑一些暴力点的做法了 相邻两段和之差的绝对值,这个限制很难处理 我们只能考虑把贡献拆开,如果把每段的位置与和标在一张折线图上,我们发现这张图中的「山峰」产生 \(+2\) 的贡献,「山谷」产生 \(-2 阅读全文
posted @ 2024-02-14 22:10 KellyWLJ 阅读(21) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-02-14 22:09 KellyWLJ 阅读(2) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-02-14 22:07 KellyWLJ 阅读(0) 评论(0) 推荐(0) 编辑
摘要: part 1:离线求 \(lca\) 将走过的点且未回溯的标记为 \(1\),已回溯的标记为 \(2\),未访问标记为 \(0\) 把对于一点 \(x\) 的询问 \(y\) 存进相应的 \(vector\),当回溯时判断如果询问的点标记为 \(2\),则 \(lca\) 为询问的点 \(y\) 到 阅读全文
posted @ 2024-02-14 22:05 KellyWLJ 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 虚树 主要是针对这一类问题:答案只跟选定的某些点(及它们的 lca)有关,且选定点的总量可以接受 而每次询问都搜索一遍整棵树很浪费 因此建出虚树,在虚树上进行各种操作 构建 有两种方法:二次排序求 lca,单调栈 单调栈 单调栈上维护的是虚树的一条链 第一步肯定是将点按照 dfn 序排序 为了方便, 阅读全文
posted @ 2024-02-14 22:04 KellyWLJ 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 欧拉路径 欧拉路径 定义:可以一笔画走完且不重复经过一条边的路径 可用欧拉路径走完有向连通图判定: 所有点入度与出度之差 \(\le1\) 入度与出度之差为1的点个数为0或2(总度数为偶数,这种点不可能只有1个,若有2个则一起点一终点) 可用欧拉路径走完无向连通图判定: 度数为奇数的点的个数为0或2 阅读全文
posted @ 2024-02-14 22:02 KellyWLJ 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 竞赛图 定义:有向图,对于 \(\forall u\ne v\),有 \(u\to v\) 或 \(v\to u\) 中的恰好一条边 说人话就是给完全图的每条边定向后得到的有向图 性质 下面均针对有 \(n\) 个点的竞赛图 强连通相关 将竞赛图中的点按出度大小从小到大排序 竞赛图缩点后,DAG 的 阅读全文
posted @ 2024-02-14 22:01 KellyWLJ 阅读(85) 评论(0) 推荐(1) 编辑
摘要: Manacher 是找出字符串中回文子串很有效的算法 具体而言,是在暴力的基础上一步步优化 首先,最暴力的是 \(O(n^2)\) 枚举左右端点,再 \(O(n)\) 判断 但可以直接枚举中间点,优化到 \(O(n^2)\) 此时出现了个问题:长度为奇数的回文串中点在中间字母, 但长度为偶数的回文串 阅读全文
posted @ 2024-02-14 21:56 KellyWLJ 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 后缀自动机 阅读全文
posted @ 2024-02-14 21:50 KellyWLJ 阅读(7) 评论(0) 推荐(0) 编辑
摘要: AC自动机 它具体而言是实现字符串多模匹配的 相比KMP,它能解决找出多个字符串在文章中出现的位置(KMP只是1-1) 你可以认为它是KMP(思想)+ Trie字典树 不过和KMP一样,在查找时它加入了fail数组,fail[i]记录以i为结尾的后缀在Trie中其他字符串上的最长前缀 听起来很绕,但 阅读全文
posted @ 2024-02-14 21:43 KellyWLJ 阅读(10) 评论(0) 推荐(0) 编辑