摘要: 好难啊。 Day 1 8:00 进考场。键盘上的 Windows 键咋是个球?不理解。 8:26 密码下发。先开 T1,woc 怎么时概期?开始推了一个 \(\mathcal{O}(n^2)\) 的 DP,但发现貌似是错的。所以先打了一个特殊性质,在证明未果后,就先跳题了。 开 T2。完了是字符串。 阅读全文
posted @ 2026-03-12 16:27 lucasincyber 阅读(31) 评论(0) 推荐(0)
摘要: 本文同步发表于洛谷。 普通均分纸牌问题 P1031 [NOIP 2002 提高组] 均分纸牌 这道题是普通的均分纸牌问题。直接贪心即可。设 \(sum = \sum a_i\),\(avg = \displaystyle \frac{sum}{n}\),则很显然,如果 \(a_i > avg\),就 阅读全文
posted @ 2025-08-28 19:11 lucasincyber 阅读(44) 评论(0) 推荐(0)
摘要: 题目传送门 思路 牛逼。首先一个 trick 是对棋盘进行黑白染色。接着我们会发现,每次移动一定会交换颜色,所以如果有一个点不能去,就可以推出有解的必要条件:\(n\) 为偶数,且 \((x + y)\) 为奇数。 接下来考虑构造得出这个条件的充分性。两列两列地分组,如果 \((x, y)\) 不在 阅读全文
posted @ 2026-04-25 17:10 lucasincyber 阅读(15) 评论(0) 推荐(0)
摘要: 题目传送门 思路 首先会想到枚举队伍 \(A\) 中人的个数。这样也就可以得出队伍 \(B\) 中的人的个数。接着我们就可以将人分为四类:都不行的(这种情况要舍)、只能放在队伍 \(A\) 里的、只能放在队伍 \(B\) 里的、和两个队伍都能放的。所以实际上就是看两个队伍都能放的人中的方案数。这就是 阅读全文
posted @ 2026-04-25 15:17 lucasincyber 阅读(14) 评论(0) 推荐(0)
摘要: 题目传送门 思路 首先看到了奇数次的数。想到异或哈希。 ::::info[异或哈希是啥?] 我们需要快速判断一个数出现了偶数次还是奇数次。我们会发现异或(\(\oplus\))有一个非常奇妙的性质: \[0 \oplus a = a, a \oplus a = 0 \]所以我们可以用哈希快速判断出现 阅读全文
posted @ 2026-04-16 17:05 lucasincyber 阅读(20) 评论(0) 推荐(0)
摘要: 题目传送门 思路 树形 DP。设 \(dp_{u, 0/1}\) 代表把以 \(u\) 为根的子树全部染红,且 \(u\) 的父亲是黑/红时的期望操作次数。分两种情况讨论: 1. \(u\) 为红色: 此时不需要进一步对 \(u\) 染色,只需要将每一个子树染色即可: \[dp_{u, 0/1} = 阅读全文
posted @ 2026-04-16 16:57 lucasincyber 阅读(34) 评论(0) 推荐(0)
摘要: 题目传送门 思路 下文中钦定 \(x\) 为出现了三次的那个数。 首先,我们会发现:如果序列中每一个数都只出现了两次,则一个前缀长度的奇偶性和这个前缀的答案的奇偶性相等。因为每次加入一个数时,答案只会加一(第一次出现)或者减一(第二次出现)。 查询次数 \(33\) 次,想到 \(\log\) 的做 阅读全文
posted @ 2026-04-16 16:57 lucasincyber 阅读(32) 评论(0) 推荐(0)
摘要: 题目传送门 思路 牛逼。 好吧还是推式子。 首先会发现这些操作后,\(a_i\) 会变成 \((a_i + v + v + \cdots)\),即原数加上一堆 \(v\)。不好直接维护,因为 \(m \le 10^9\),所以考虑拆贡献。用乘法分配律将这个式子展开,即将 \(\prod \limit 阅读全文
posted @ 2026-04-09 17:36 lucasincyber 阅读(12) 评论(0) 推荐(0)
摘要: 题目传送门 思路 首先观察性质。我们可以把查询抽象为填一个 \(c \times s\) 的矩阵,一个数 \(x\) 可以用 \(x\) 次,并且需要保证每一列中的数都互不相同。 那每一个数就被分为了两种情况: \(x \ge s\),此时只能用这个数 \(s\) 次,并且分别放在 \(s\) 列中 阅读全文
posted @ 2026-04-09 17:36 lucasincyber 阅读(12) 评论(0) 推荐(0)
摘要: 题目传送门 思路 首先我们会发现,需要的就是数量 \(> k\) 的个数,数量 \(\le k\) 的和。那我们就在线段树中维护两个变量:当前区间数量 \(> 0\) 的个数和当前区间的最小值。维护第一个值是为了判断这个区间还有多少可以用的值,第二个值是为了得出当前可不可以直接算出。 对于每一个 \ 阅读全文
posted @ 2026-04-09 17:35 lucasincyber 阅读(12) 评论(0) 推荐(0)
摘要: 题目传送门 思路 首先我们会发现如果 \(1\) 可以到达 \(n\),那图一定强连通。因为有一条 \(n \to n - 1 \to \cdots \to 1\) 的有向链,所以每一个点都可以从 \(n\) 到达。那问题就转化为在 \(m\) 条边中选择一些边,使得 \(1\) 可以到达 \(n\ 阅读全文
posted @ 2026-04-09 17:34 lucasincyber 阅读(13) 评论(0) 推荐(0)
摘要: 题目传送门 思路 根号分治。 首先我们会发现答案一定不会超过 \(\lceil \dfrac{n}{k} \rceil\),因为每 \(k\) 个分为一组也就这么多。同时 \(k\) 变大时,答案一定不会变大,即答案序列单调不增。这样就可以得出,不同的答案最多只有 \(\sqrt n\) 个,且答案 阅读全文
posted @ 2026-04-01 19:37 lucasincyber 阅读(16) 评论(0) 推荐(0)