摘要: 排列的环分解 单次交换操作的效果: 当交换元素属于不同环时 \(\to\) 合并两个环 当交换元素属于同一个环时 \(\to\) 将该环分裂为两个 由于所有环的长度之和为 \(N\),且每个环长度均为正整数,因此不同的环长度数量最多只有 \(O(\sqrt{N})\) 种 位运算 定义 LSB(w) 阅读全文
posted @ 2025-09-03 16:26 V_Melville 阅读(28) 评论(0) 推荐(0)

摘要: 1. 在两个数列之间 有两个整数数列 \(a_1,a_2,\cdots,a_n\) 和 \(b_1,b_2,\cdots,b_n\)。我们的任务是找出满足以下条件的数列 \(c_1,c_2,\cdots,c_n\): 对 \(i=1,2,\cdots,n\),\(a_i \le c_i \le b_ 阅读全文
posted @ 2024-06-19 17:15 V_Melville 阅读(37) 评论(0) 推荐(1)

摘要: AGC020C. Median Sum 记原序列的总和为 \(S\) 容易发现如果把空集也考虑进去的话,在左边任取一个子集,其和为 \(x\),那么一定可以在右边找到一个子集满足它的和为 \(S - x\)。也就是说,位于权值为 \(\frac{S}{2}\) 的左右两边的子集是对称的。 于是,我们 阅读全文
posted @ 2024-06-07 21:43 V_Melville 阅读(52) 评论(0) 推荐(0)

2026年3月19日

摘要: T1. 序列 可以证明有解当且仅当 \(\min S \leqslant k \leqslant \max S\) 代码实现 #include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (n); ++i) using namespac 阅读全文
posted @ 2026-03-19 21:43 V_Melville 阅读(2) 评论(0) 推荐(0)

2026年3月15日

摘要: C. Comfortable Distance 固定指针 \(j\),维护左边的滑动窗口 \([j-l, j-r]\) 需要用数据结构来维护这个窗口,并支持以下功能: 添加/删除一个字符 查询字符 \(c\) 的个数 容易想到用 std::map 就能实现 代码实现 #include <bits/s 阅读全文
posted @ 2026-03-15 16:44 V_Melville 阅读(19) 评论(0) 推荐(0)

2026年3月8日

摘要: C. Except and Min 注意到 \(K \leqslant 5\),只需检测序列 \(A\) 的前 \(6\) 小的数即可 代码实现 #include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (n); ++i) usin 阅读全文
posted @ 2026-03-08 15:28 V_Melville 阅读(15) 评论(0) 推荐(0)

2026年3月1日

摘要: C. Insert and Erase A 先判定无解的情况: 去掉所有的字符 A 后,\(S\) 和 \(T\) 不同 再来求最少操作次数 我们可以预处理出任意相邻两个 A 之间的其他字符的个数,首尾也同样处理出其他字符的个数。然后将 \(S\) 和 \(T\) 处理出的序列对应做绝对差求和即可。 阅读全文
posted @ 2026-03-01 15:01 V_Melville 阅读(18) 评论(0) 推荐(0)

2026年2月24日

摘要: A. Zombie 先选择若干个(可能 \(0\) 个)“内部间隙”去消除(每次消除用掉一块饵,贡献为 \(\frac{gap}{2}\),并把两端距离都增加 \(\frac{gap}{2}\)),然后用剩下的饵全部放在端点(先放一次端点取最大端,再每次都能取得两端之和)。 B. Stolen Ne 阅读全文
posted @ 2026-02-24 17:16 V_Melville 阅读(31) 评论(0) 推荐(0)

2026年2月22日

摘要: C. Omelette Restaurant 开一个队列来维护当前还剩下的鸡蛋 代码实现 #include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; void solve( 阅读全文
posted @ 2026-02-22 14:16 V_Melville 阅读(14) 评论(0) 推荐(0)

2026年2月15日

摘要: C. Sugoroku Destination 注意到 \(i \leqslant A_i \leqslant N\),所以从 \(i\) 出发一定会走到某个自环 代码实现 #include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < 阅读全文
posted @ 2026-02-15 14:26 V_Melville 阅读(14) 评论(0) 推荐(0)

2026年2月9日

摘要: A. Same Sum Grid Path \((i,j)\) 和 \((i+1,j+1)\) 必须相同 因此同一条对角线上的所有格子都必须相同 显然这也是充分条件。 B. Missing Number in Graph 用带权并查集可以确定每个连通分量内部的差值关系 若 \(n\) 为偶数,则所有 阅读全文
posted @ 2026-02-09 15:38 V_Melville 阅读(16) 评论(0) 推荐(0)

2026年2月8日

摘要: 变强不是为了碾压别人,而是为了在风暴来临时,能稳稳地接住自己。 阅读全文
posted @ 2026-02-08 00:34 V_Melville 阅读(35) 评论(0) 推荐(0)

2026年2月1日

摘要: C. Chokutter Addiction 维护上一次打开的时刻 代码实现 #include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; int main() { int 阅读全文
posted @ 2026-02-01 15:49 V_Melville 阅读(14) 评论(0) 推荐(0)