摘要: 最大值最小,容易想到二分。 考虑贪心,尽量选深度小的点,判断最少点数是否 \(\le k\)。对每个点记录子树内距离最近的公园和最远的未被覆盖的点。若两距离和 \(>mid\),则选择当前点,时间复杂度 \(\mathcal O(n\log V)\)。 参考代码: #include<bits/std 阅读全文
posted @ 2025-07-05 17:39 zifanwang 阅读(12) 评论(0) 推荐(0)
摘要: k-nim 博弈板子题。 注意到白子只能向右移,黑子只能向左,那么可以将每对相邻的 白-黑 子看作一堆石子,石子个数为中间的空格数。每次可以从 \(1\sim d\) 个堆中取出若干石子。 考虑先手必胜的条件。将所有石子个数用二进制表示,那么一定存在一个 \(i\) 满足所有石子个数二进制表示下的第 阅读全文
posted @ 2025-07-05 17:08 zifanwang 阅读(20) 评论(0) 推荐(0)
摘要: 题意,即求有多少区间存在绝对众数。考虑分治,每次求经过 \(mid\) 的好区间的个数。 注意到若 \([l,r]\) 存在绝对众数,则 \([l,mid]\) 或 \([mid+1,r]\) 必有一个存在绝对众数。固定一个端点,绝对众数的个数是 \(\mathcal O(\log n)\) 的。 阅读全文
posted @ 2025-07-05 17:08 zifanwang 阅读(11) 评论(0) 推荐(0)
摘要: 首先容易想到记 \(f_i\) 表示前 \(i\) 个位置能得到的最大价值,枚举以 \(i\) 结尾的段直接 dp。 发现最后一个段选的颜色必定为 \(s_i\),不然可以令 \([i,i]\) 为单独一段。且以 \(i\) 结尾的段开头颜色也一定是 \(s_i\)。记 \(c_i\) 表示 \([ 阅读全文
posted @ 2025-07-05 17:07 zifanwang 阅读(14) 评论(0) 推荐(0)