该文被密码保护。 阅读全文
posted @ 2020-06-21 20:49 ChPu437 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 同 Luogu P3373 注意如果写 pushup 的话不要越界 注意更新 sum 值的位置 # include <iostream> # include <cstdio> # define MAXN 100000+5 # define LL long long using namespace s 阅读全文
posted @ 2020-06-05 19:06 ChPu437 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 树状数组及各种操作 同样是先挖坑再慢慢填 首先要知道一个贯穿树状数组始终的操作:lowbit int lowbit(int x){ return x & (-x); } 这个函数的意思是:返回 \(x\) 的二进制表达中第一个 $1$ 的位置(以 $2^i$ 的形式表示) 如何做到的:因为整数是以补 阅读全文
posted @ 2020-06-01 06:47 ChPu437 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 以前没正经写过二分查找,就拿这个当作是板子吧 题面 最开始是想二分答案的,但是没有考虑到数据中重复的数值的情况,50 分 WA 了。。。 但是这题显然适合二分查找: 当我们的数据 在数组中是线性排列的,就可以使用二分查找。 需要两个辅助数组: sz[] 用于记录每个分组的大小 g[] 用于记录当前分 阅读全文
posted @ 2020-05-31 21:11 ChPu437 阅读(243) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-05-28 06:41 ChPu437 阅读(4) 评论(1) 推荐(1) 编辑
摘要: Kruskal求最小生成树 5/27/2020 9:28 更新:原来那个程序有点怪。。已经改了 运用了贪心的思想 最小生成树上的每条边一定是可选的最小边才能最优,其他情况均不是最优 因此将所有边加入小根堆,然后每次取堆顶 并查集维护连通性防止重复加边以及生成环 代码: // Kruskal # in 阅读全文
posted @ 2020-05-27 08:43 ChPu437 阅读(111) 评论(2) 推荐(1) 编辑
摘要: 最近公共祖先(LCA) 顾名思义就是两节点最近的公共祖先 LCA常用求法: DFS + ST表 倍增 Tarjan 树链剖分 求 LCA 的时候需要注意图的联通性,这在一些题中是会考到的,比如题中会给“无解输出 ‘-1’ 之类的条件” 维护连通性用并查集即可。 倍增求 LCA 首先预处理一下每个节点 阅读全文
posted @ 2020-05-18 07:54 ChPu437 阅读(263) 评论(1) 推荐(1) 编辑
摘要: 树形DP题 这题乍一看会觉得:“这啥玩意,染遍色不就出来了吗,这么水?” 然后就会发现直接WA掉 其实这题是个树形DP题,我们可以发现当类似“偶数个节点链接了两颗大子树”之类强制让你的结构中一大部分点使用 2 作为点权的情况时,仅用两个颜色并不能得到最优解。 而且这题的恶心之处在于它还是个结论题:可 阅读全文
posted @ 2020-05-16 22:08 ChPu437 阅读(137) 评论(1) 推荐(1) 编辑
该文被密码保护。 阅读全文
posted @ 2020-05-06 19:11 ChPu437 阅读(2) 评论(1) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-05-01 21:16 ChPu437 阅读(1) 评论(0) 推荐(0) 编辑