摘要: 堆 一.堆的性质 堆是一颗完全二叉树 堆顶一定是优先级“最大”,最小” 堆一般有两种——小根堆和大根堆,对于大根堆而言,任何一个非根节点,它的优先级都小于堆顶,对于小根堆而言,任何一个非根节点,它的优先级都大于堆顶 堆一般是用二叉树来实现的 一颗完全二叉树,每个节点有一个权值。 父节点的权值总是大于 阅读全文
posted @ 2020-08-18 16:21 ke_xin 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 分块——优雅的暴力 参考 分块算法的思想是通过适当的划分,预处理一部分信息保存下来,用空间换取时间,达到时空平衡。 分块实现的基本框架: 划分块(一般将其分为$\sqrt n$块,每块也有$\sqrt n$个元素),预处理,操作或查询。 操作或查询通常为4步: 1.判断要操作或是查询的区间是否在一个 阅读全文
posted @ 2020-08-18 10:15 ke_xin 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 网络流 ​ ————重在建模 网络,有向图,源点s,汇点t 最大流 Edmonds−karp(EK)增广路算法 \(O(nm^2)\) \(10^3 — 10^4\) 不断用BFS寻找增广路并不断更新最大流量值,直到网络上不存在增广路为止 在BFS寻找一条增广路时,我们只需要考虑剩余流量不为0的边, 阅读全文
posted @ 2020-08-17 20:58 ke_xin 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 斜率优化 转自: https://www.cnblogs.com/MashiroSky/p/6009685.html 例1:任务安排1 蓝书或下面解答 https://www.luogu.com.cn/blog/ButterflyDew/solution-p2365 #include <iostre 阅读全文
posted @ 2020-08-17 20:57 ke_xin 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 8.8模拟赛 T1 当时被环搞傻了。。。爆搜9分 正解: 思路:T当成次数限制,然后可以想到分层图我怎么想不到。。。又不见多识广了,显然,分层图是个DAG,然后拓扑排序换spfa...然后又顺理成章开始dp 首先 (最大点权)$mxT >= cT^2 $ 才有意义 化简一下 即 mx>=c*T ,m 阅读全文
posted @ 2020-08-17 16:40 ke_xin 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 单调队列dp 其实单调队列就是一种队列内的元素有单调性的队列,因为其单调性所以经常会被用来维护区间最值或者降低DP的维数已达到降维来减少空间及时间的目的。 单调队列与普通队列不一样的地方就在于单调队列是双端队列,既可以从队首出队,也可以从队尾出队。 队列q[ ]存的是下标、 单调队列中元素大小单调 阅读全文
posted @ 2020-08-16 15:24 ke_xin 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 前缀和优化DP 例1: [洛谷P2513 HAOI2009]逆序对数列 设 \(f[i][j]\) 表示 前i个数字构成逆序对数为 j 的方案总数 \[ f[i][j]=\sum_{k=max(0,j-i-1)}^{j}{f[i][k]}\\ 令sum=\sum_{k=max(0,j-i-1)}^{ 阅读全文
posted @ 2020-08-15 17:41 ke_xin 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 状压 一般看到数据范围是16左右的时候想状压dp 解决两类问题: 集合问题 棋盘问题 O(\(n^4\)) for(int s=0;s<(1<<n);s++) for(int t=0;t<(1<<n);t++) if(t&s==t) O(\(n^3\)) for(int s=0;s<(1<<n);s 阅读全文
posted @ 2020-08-15 17:35 ke_xin 阅读(48) 评论(0) 推荐(0) 编辑
摘要: DAG 上的 DP&环形DP 例1:Naptime https://www.luogu.com.cn/problem/SP283 解答详见蓝书 简化问题——每天从第1小时开始,到第N小时结束,线性 然后再强制第1小时和第N小时都睡觉,再dp一遍 最后取max 滚动数组滚掉一维 #include <i 阅读全文
posted @ 2020-08-15 17:25 ke_xin 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 换根DP 换根法套路:枚举每个点为根做一遍dp 简化为二次扫描换根法 1,随便找一个点作为根进行dp, 2,再以原来点为根进行dp,此次dp,设最优解为 f[x],那么f[root]=d[root],这是显而易见的 然后再通过找d[son]与f[x]之间关系进行dp 例1:POJ3585 #incl 阅读全文
posted @ 2020-08-15 15:31 ke_xin 阅读(96) 评论(0) 推荐(0) 编辑