随笔分类 -  题目来源-ACM/杭电多校/CFgym

该文被密码保护。
posted @ 2024-05-14 00:47 duyiblue 阅读(106) 评论(2) 推荐(0) 编辑
摘要:Kruskal 算法。考虑哪些边有可能被贪心选中。因为最小公倍数的要求太复杂、太苛刻,我们不妨忽略“最小”,只考虑是公倍数。因为这样新产生的边边权更大,不会影响答案。考虑点权是 k 的倍数的点之间的边,发现有用的边其中一个端点一定是大于等于 L 的第一个 k 的倍数。于是有用的总边数就被压缩到了 O(n log n) 级别。直接执行 kruskal 算法即可。此外,我们还可以不事先排序,用 priority_queue 把空间复杂度优化到 O(n)。 阅读全文
posted @ 2022-04-10 18:15 duyiblue 阅读(258) 评论(2) 推荐(1) 编辑
摘要:拆方差。拆成三个部分,前两个部分是类似的。我们改变枚举方式,用桶存储出现次数,并做 NTT,就能求出。第三部分,基于前面 NTT 的结果,进行容斥。分类讨论一下,即可求出。 阅读全文
posted @ 2020-10-25 18:37 duyiblue 阅读(193) 评论(0) 推荐(1) 编辑
该文被密码保护。
posted @ 2020-09-15 00:06 duyiblue 阅读(72) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-09-14 00:27 duyiblue 阅读(54) 评论(0) 推荐(0) 编辑
摘要:首先使用 minmax 容斥。然后通过推导,进一步转化为求子集里一个点都覆盖不到的区间数。暴力枚举子集是 2^n 的,太慢了。考虑对满足 xxx 条件的子集数量进行 DP 计数。复杂度 n^4。 阅读全文
posted @ 2020-02-27 13:58 duyiblue 阅读(266) 评论(0) 推荐(0) 编辑