07 2025 档案

摘要:考虑将连续相同的段删除等价于什么,即对所有相邻的两列选择一个公共子序列,对应位置合并一起删除。答案即为 \(n^2\) 减去所有相邻两列 LCS 长度之和。 注意到数据是随机生成的,即同一列中每种颜色的出现次数都是 \(\mathcal O(1)\) 的,直接枚举匹配的位置树状数组维护转移即可。 时 阅读全文
posted @ 2025-07-11 21:08 zifanwang 阅读(19) 评论(0) 推荐(0)
摘要:大分讨题。 期望 \(\times {n\choose 2}^k\),即求每种情况的逆序对数之和。 考虑枚举所有 \(i<j\) 计算最终 \(a_i>a_j\) 的方案数。记 \(A=a_i,B=a_j\),\(C\) 表示除了 \(a_i,a_j\) 以外的任意一个数,发现最终 \((a_i,a 阅读全文
posted @ 2025-07-11 21:08 zifanwang 阅读(10) 评论(0) 推荐(0)
摘要:考虑二分答案然后 dp,钦定 \(mid\) 为重新开始的期望时间。若求出的期望时间 \(<mid\) 小,则答案 \(<mid\)。 记 \(f_{i,j}\) 表示当前到了第 \(i\) 关,用了 \(j\) 单位时间通关需要花费的的期望总时间。考虑怎么转移: 若 \(j>R\),则必须重启,\ 阅读全文
posted @ 2025-07-11 21:07 zifanwang 阅读(7) 评论(0) 推荐(0)
摘要:考虑容斥,枚举哪些矩阵中的数 \(<v\)(个数为 \(c\)),哪些 \(\le v\),则系数为 \((-1)^c\)。 考虑将矩阵离散化为 \(\mathcal O(n^2)\) 个块,对于每个子矩阵枚举覆盖的块,更新最大值,最后答案便是 \(\sum_{T\sub S}(-1)^{|T|}\ 阅读全文
posted @ 2025-07-06 19:36 zifanwang 阅读(19) 评论(0) 推荐(0)
摘要:最大值最小,容易想到二分。 考虑贪心,尽量选深度小的点,判断最少点数是否 \(\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 阅读(16) 评论(0) 推荐(0)
摘要:题意,即求有多少区间存在绝对众数。考虑分治,每次求经过 \(mid\) 的好区间的个数。 注意到若 \([l,r]\) 存在绝对众数,则 \([l,mid]\) 或 \([mid+1,r]\) 必有一个存在绝对众数。固定一个端点,绝对众数的个数是 \(\mathcal O(\log n)\) 的。 阅读全文
posted @ 2025-07-05 17:08 zifanwang 阅读(9) 评论(0) 推荐(0)
摘要:首先容易想到记 \(f_i\) 表示前 \(i\) 个位置能得到的最大价值,枚举以 \(i\) 结尾的段直接 dp。 发现最后一个段选的颜色必定为 \(s_i\),不然可以令 \([i,i]\) 为单独一段。且以 \(i\) 结尾的段开头颜色也一定是 \(s_i\)。记 \(c_i\) 表示 \([ 阅读全文
posted @ 2025-07-05 17:07 zifanwang 阅读(12) 评论(0) 推荐(0)