上一页 1 2 3 4 5 6 7 8 9 10 ··· 39 下一页
摘要: 题目大意:区间最小覆盖问题。 题解:本身是一道贪心水题,但是细节还是比较多的,记录一下。 由于每个奶牛对答案的贡献是一样的,肯定要选择在满足条件的基础上能够拓展最多的那个奶牛。为了满足条件,对区间左端点进行排序,每次决策集合为:满足区间左端点比当前边界 + 1 要小的情况下,右端点最大的那个奶牛。注 阅读全文
posted @ 2019-06-11 23:56 shellpicker 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵 N 个节点的有根树,1 号节点为根节点,点有点权,求对于每个节点为根的子树中,出现次数最多的点权的和是多少。 题解:子树询问问题可以采用离线+线段树合并 线段树维护区间颜色出现次数最大值和区间颜色出现次数最大的点权和,合并通过比较左右子区间出现的最大次数讨论即可。 代码如下 cp 阅读全文
posted @ 2019-06-11 17:52 shellpicker 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵 N 个节点的有根树,1 号节点为根节点,树边有两个权值,分别为走路的代价和开车的代价。有一个旅行者开车要从根节点出发,必须遍历给定点集,可以在任何位置停止旅行,有车时可以选择开车或步行,没车只能跑路,求最小代价。 题解:这是我做过最恶心的树形dp QAQ 和 apple tree 阅读全文
posted @ 2019-06-10 16:26 shellpicker 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 马拉车算法用于解决最长回文字串的一类问题,可以将时间复杂度降低为$O(n)$,几乎达到了理论上的下界。 核心思想:将分奇偶讨论的情况转化成同一种情况(奇数)。 下面介绍该算法需要用到的几点性质: 1. $p[i]$表示以$i$为中心的派生串最长回文半径的长度,则$p[i] 1$表示原串中以$i$为中 阅读全文
posted @ 2019-06-08 17:05 shellpicker 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵 N 个节点的树,点有点权,边有边权,给定 M 个询问,每次询问距离 U 节点不超过 R 的点集中,点权最大的点的编号是多少,若有相同点权,取编号较小的点。 题解: 发现是多组询问,而且涉及的问题很难通过子树信息合并来解决。同时距离 U 节点不超过 R 等价于 U 与 V 路径距离 阅读全文
posted @ 2019-06-08 16:07 shellpicker 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定 4 种面值的硬币和相应的个数,求购买 S 元商品的方案数是多少。 题解: 考虑没有硬币个数的限制的话,购买 S 元商品的方案数是多少,这个问题可以采用完全背包进行预处理。 再考虑容斥,即:可以采用总方案数 sum(一种硬币不合法的方案数) + sum(两种) sum(三种)... 代 阅读全文
posted @ 2019-06-08 13:04 shellpicker 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题目大意:求从 1 到 N 中共有多少个数可以表示成 $M^K,K \gt 1$。$N \le 1e18$ 题解: 发现 N 很大,若直接枚举 M 的话有 1e9 级别的数据量,肯定超时,因此考虑枚举幂次。发现对于幂次为 k 的符合条件的数有 N 开 K 次方下取整个,同时注意到 k 的取值范围最大 阅读全文
posted @ 2019-06-07 08:54 shellpicker 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个 N 个点的森林,M 个询问,每次询问对于点 u 来说,有多少个点和 u 有相同的 K 级祖先。 题解:线段树合并适合处理子树贡献的问题。 发现要回答这个询问在点 u 处计算很困难,但是在 u 的 k 级祖先处处理询问很简单,即:问对于 v 子树中深度为 k 的节点的个数。因此,采 阅读全文
posted @ 2019-06-06 17:01 shellpicker 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 题目大意:求多重集合的组合数, $N \le 1e14,M \le 20$。 题解: 考虑容斥原理,具体做法是枚举所有情况,即:枚举子集,第 i 位为 1 表示满足第 i 个条件,正负号采用 sign 进行判断。 对于本题的组合数来说,上指标过大,导致没办法预处理阶乘和逆元进行快速回答,不过下指标很 阅读全文
posted @ 2019-06-05 13:32 shellpicker 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵 N 个节点的无根树,有 M 个操作,每次选定一条树链,将这条链上所有点的点权 +1,最后求树上点的最大点权是多少。 题解:树上差分算法的应用。 发现操作有 M 次,但是询问只有一次,和序列差分算法很像。对于树链 u,v 的修改来说,可以采用将 u 的点权 +1,v 的点权 +1, 阅读全文
posted @ 2019-06-03 10:13 shellpicker 阅读(138) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 39 下一页