05 2023 档案

摘要:1.KMP 算法 引入 border 下文默认字符串从 1 开始。 border 的定义,若对于字符串 s,长为 n, 若存在 s[1,r]=s[nr+1,n](rn),那么称 rsborder. fail 数组 阅读全文
posted @ 2023-05-31 07:34 s1monG 阅读(247) 评论(0) 推荐(0) 编辑
摘要:1.状态设计优化 给个例题:求最长公共子序列, 但是 A 长度为 n=106B 长度为 m=103O(nm) 会超时。 不妨设 f(i,j) 表示取了 i 个 B,答案是 jA 的最小长度。 这样复杂度是 \(O(m 阅读全文
posted @ 2023-05-21 20:28 s1monG 阅读(48) 评论(1) 推荐(1) 编辑
摘要:### 1.线性 dp #### 1.1 P1412 经营与开发 由于前面的操作只会对后面乘一个系数。 所以这题需要倒着 dp。 f(i)=max(f(i+1)k+v,f(i+1)) k,v 分别为损耗,利益。 ### 2.区间 dp 状态通常为一个区间。 #### 2. 阅读全文
posted @ 2023-05-21 19:02 s1monG 阅读(18) 评论(1) 推荐(0) 编辑
摘要:以 P4719【模板】动态 DP 一题为例。 我们显然可以写出朴素的方程。 考虑有 vu 儿子。 fu,0=max(fv,0,fv,1) fu,1=fv,0. 答案是 $\max (f_{root,0},f_{root,1}) 阅读全文
posted @ 2023-05-18 15:25 s1monG 阅读(20) 评论(0) 推荐(0) 编辑
摘要:引入 节点由两个集合组成,且两个集合内部没有边的图。 二分图不存在长度为奇数的环。 模型 二分图最大匹配 用匈牙利算法或网络流。 换算成网络流, 二分图最大匹配 = 最大流。 二分图最小点覆盖 König 定理: 最小点覆盖:选最少的点,满足每条边至少有一个端点被选。 最小点覆盖 = 最大匹配。 换 阅读全文
posted @ 2023-05-12 19:36 s1monG 阅读(27) 评论(0) 推荐(0) 编辑
摘要:引入 P2495 [SDOI2011] 消耗战 我们容易发现我们可以有一个 O(nq) 的树形 Dp. 我们称有资源的点为关键点。有 k 个。 设 dpu 表示 u 子树内不连接任何关键点的最小费用。 dpu=dpu+min(dpv,w),当 v 非关键点。 $dp 阅读全文
posted @ 2023-05-11 21:33 s1monG 阅读(14) 评论(0) 推荐(0) 编辑
摘要:引入 网络 是有向图。 每条边有权值 c(u,v),称为容量(Capacity)。 有两个重要的点,源点 s,汇点 t 。 流 流函数 f 满足: 容量限制: f(u,v)c(u,v) 斜对称 : f(u,v)=f(u,v) 流量守恒 :\( 阅读全文
posted @ 2023-05-07 21:20 s1monG 阅读(19) 评论(1) 推荐(0) 编辑
摘要:1.最短路 引入 Dijkstra Dijkstra 是基于贪心的一种算法,适用于非负权的图,求解单源最短路。 算法是这样的: 找出全局距离最小的点 u,并用这个点去更新连接它的 v 点的距离。 时间复杂度 O(n2),使用堆优化可以优化到 O(mlogm) code pri 阅读全文
posted @ 2023-05-07 19:06 s1monG 阅读(12) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示