摘要: 波兰题,太邪恶了 其实都是很好的题。 P3427 简单计数。 首先手玩一些样例可知,给出的图中若存在环,则无解,所以图一定是一个森林。 考察其中一个大小至少为 \(2\) 的联通块。这个联通块一定是由一条链以及链上的节点挂的叶子组成的。这个联通块可以左右翻转、上下翻转,且一个节点上挂的叶子可以排列, 阅读全文
posted @ 2026-07-27 18:14 Redolent 阅读(5) 评论(0) 推荐(0)
摘要: 一些结论 \[\begin{aligned} j\times(i-j)&=\binom{i}{2}-\binom{j}{2}-\binom{i-j}{2}\\ \end{aligned} \]用来消掉卷积时指数上的 \(ij\) 项。 \[\begin{aligned} \sum\limits_{i 阅读全文
posted @ 2026-07-19 20:23 Redolent 阅读(5) 评论(0) 推荐(0)
摘要: 不用容斥的做法。 思路 考虑直接刻画 \(S\) 的限制。 首先有 \(S_i-S_{i-1}=A_{i+1}-A_{i}\),即 \(S\) 的差分数组 \(D_i=S_{i+1}-S_{i}\) 满足奇数项是 \(A\) 的奇数项的差分,偶数项是 \(A\) 偶数项的差分,这启示我们将奇偶分开看 阅读全文
posted @ 2026-04-23 19:02 Redolent 阅读(13) 评论(0) 推荐(0)
摘要: 思路 每个顾客选比自己小的最大商品可以直接等价于选比自己小的任意商品,然后最大化选的商品个数。 然后就相当于每个顾客向比自己小的商品连边,做二分图最大匹配。考虑 Hall 定理,只要把 \(\max\{|S|-N(S)\}\) 记到状态里就可以统计答案。于是直接统计 \(dp_{i,j,k}\) 表 阅读全文
posted @ 2026-04-23 11:42 Redolent 阅读(14) 评论(0) 推荐(0)
摘要: 【数据删除】卡空间题。 思路 首先极小的和为零的区间总共只有 \(O(n)\) 个。可以直接预处理。 然后从询问右端点开始,每次贪心的取左端点最近的极小区间一定不劣。于是预处理出每个数左边的第一个极小区间左端点,求出每次询问对应的左端点集合,然后二分即可。 考虑如何求出每次询问的左端点集合。因为每个 阅读全文
posted @ 2026-04-20 20:16 Redolent 阅读(7) 评论(0) 推荐(0)
摘要: 太深刻了。 题意 给定一个序列 \(a\),支持单点修改,区间查询重排后是否能构成等差数列。 思路 首先如果能构成等差数列,公差一定为 \(\frac{\max-\min}{r-l}\)。然后还有一个表示方法:相邻两数的差的 \(\gcd\)。下面证明这个是对的: 设相邻两数的差的 \(\gcd\) 阅读全文
posted @ 2026-04-17 06:37 Redolent 阅读(21) 评论(0) 推荐(0)
摘要: 题意 给定 \(K\le 1000\),要求构造一个 \(n\times n\) 矩阵,满足: \(n\in[1,500]\) 每种颜色都出现了 每种颜色的格子周围的颜色(种类、个数)相同 思路 首先一个如下的拉丁方阵一定满足第 \(2,3\) 条限制: \[\begin{matrix} 1,&2, 阅读全文
posted @ 2026-04-15 07:51 Redolent 阅读(7) 评论(0) 推荐(0)
摘要: 申必题 题意 对于一个字符串 \(S\),求出一个字典序最小的 01 串 \(T\),满足 \(|S|=|T|\) 且 \(S\) 和 \(T\) 的所有周期相同。 思路 首先周期可以用 KMP 跳 border 求出。于是把限制转化为 \(S\) 和 \(T\) 从结尾开始往前跳最长 border 阅读全文
posted @ 2026-04-14 11:24 Redolent 阅读(17) 评论(0) 推荐(0)
摘要: 给点不一样的思路。 题意 给定一个长为 \(n\) 的序列 \(a\)。有一种操作是将相邻两个数的异或值赋给其中一个。要求用不超过 \(4\times10^4\) 次操作使序列满足: 单调递增(满足每个数只出现一次) 单调不减 思路 \(S=1\) 众所周知,我们可以用 \(3\) 次异或操作模拟一 阅读全文
posted @ 2026-03-05 17:30 Redolent 阅读(23) 评论(0) 推荐(0)
摘要: 好题没人写 题意 给定一个 \(N\times N\) 的矩阵,里面有 \(0\) 到 \(N\times N-1\) 的数,有两种操作,分别是将第一行重排然后放到最后一行,和把第一列重排放到最后一列。构造一种操作方案,使得操作完后矩阵有序。要求操作次数 \(<3N\)。 思路 先将每个数替换为它最 阅读全文
posted @ 2026-03-04 19:34 Redolent 阅读(18) 评论(0) 推荐(1)