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

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

2026年1月25日

摘要: A. Swapping Game 因为从任意排列到任意排列至多需要 \(\frac{L(L−1)}{2}\) 步,所以不必考虑出现 \(L(L−1)\) 个连续步骤都无法得到 \(C_i\) 的情况。DP 即可。 B. Hamming Distance is not 1 起初觉得只选 \(\text 阅读全文
posted @ 2026-01-25 22:47 V_Melville 阅读(16) 评论(0) 推荐(0)
 
摘要: C. Peer Review 记 deg[v] 表示点 \(v\) 的度数 答案就是 \(\binom{N-1-deg[v]}{3}\) 代码实现 #include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (n); ++i) usi 阅读全文
posted @ 2026-01-25 15:31 V_Melville 阅读(10) 评论(0) 推荐(0)

2026年1月18日

摘要: C. Sake or Water 先将数组 \(A\) 做降序排序 显然容量最大的 \(N-K\) 杯液体必选,然后清酒也可能出现在后 \(K\) 个杯子里,我们可以对这后 \(k\) 杯液体从前往后贪心地选择,直到喝到的容量达到 \(X\) 毫升为止。 代码实现 #include <bits/st 阅读全文
posted @ 2026-01-18 15:00 V_Melville 阅读(25) 评论(0) 推荐(0)

2026年1月15日

摘要: C. 2026 注意到 \(0 < x < y < \sqrt{n}\),所以直接枚举 \((x, y)\) 即可 代码实现 #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<int> 阅读全文
posted @ 2026-01-15 17:30 V_Melville 阅读(3) 评论(0) 推荐(0)

2026年1月11日

摘要: C. Striped Horse 观察选定的正整数 \(x\) 后,满足条件的下标集合只与 \((i+x) \bmod 2W\) 是否落在区间 \([0,W−1]\) 有关。也就是说,把下标按模 \(2W\) 分组,所选的格子就是这 \(2W\) 个同余类中某个长度为 \(W\) 的连续区间(环上的 阅读全文
posted @ 2026-01-11 16:34 V_Melville 阅读(16) 评论(0) 推荐(0)

2026年1月10日

摘要: T1. 虚张声势 考虑分治 我们设 \(f(l, r)\) 为所有 \([l, r]\) 的子区间对答案的贡献。即,所有满足 \((l \leqslant x \leqslant y \leqslant r)\) 且 \(y-x+1 \leqslant k\) 的子区间 \([x, y]\) 的乘积 阅读全文
posted @ 2026-01-10 14:43 V_Melville 阅读(4) 评论(0) 推荐(0)

2026年1月9日

摘要: T1. 城堡镇 注意到 \(x, y\) 两个轴互不影响,然后要最小化 \(\sum\limits_{i=1}^n |x-x_i|\),显然就是找中位数。如果 \(n\) 是奇数那么就能确定到唯一的一个点,如果 \(n\) 是偶数那就是一个矩形,边长是两个中位数的差。 代码实现 #include < 阅读全文
posted @ 2026-01-09 21:12 V_Melville 阅读(6) 评论(0) 推荐(0)

2025年12月28日

摘要: C. 1D puyopuyo 栈 代码实现 #include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; int main() { int n; cin >> n; vect 阅读全文
posted @ 2025-12-28 14:33 V_Melville 阅读(22) 评论(0) 推荐(0)

2025年12月21日

摘要: C. Reindeer and Sleigh 2 记 \(S\) 为乘坐雪橇的驯鹿集合 由题意可知,\(\displaystyle \sum_{i \in S} W_i \leqslant \sum_{i \notin S} P_i\) 不不等式做一下变形: \[\left(\sum_{i \in 阅读全文
posted @ 2025-12-21 15:35 V_Melville 阅读(24) 评论(0) 推荐(0)

2025年12月20日

摘要: T1. 最小公倍数 我们称一个正整数是合法的,当且仅当不存在一个非空子序列的 \(\text{lcm}\) 是这个数。题目要求的就是最小的合法的数。 对于两个集合 \(S,T\),我们有 \(\text{lcm}(S \cup T) = \text{lcm}(\text{lcm}(S), \text 阅读全文
posted @ 2025-12-20 14:38 V_Melville 阅读(6) 评论(0) 推荐(0)