摘要: 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 阅读(15) 评论(0) 推荐(1)

摘要: ABC127E. Cell Distance \( \sum\sum (|x_i-x_j| + |y_i-y_j|) = \sum\sum |x_i - x_j| + \sum\sum |y_i-y_j| \) 所以,\(x\) 和 \(y\) 可以分别单独考虑 这里仅讨论 \(x\) 的贡献,\( 阅读全文
posted @ 2024-06-07 21:43 V_Melville 阅读(23) 评论(0) 推荐(0)

2025年7月9日

摘要: C. Black Intervals 考虑翻转前后对答案有什么影响 代码实现 #include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; int main() { int 阅读全文
posted @ 2025-07-09 17:32 V_Melville 阅读(3) 评论(0) 推荐(0)

2025年7月6日

摘要: C. Giant Domino 首先如果 \(S_N \leqslant 2S_1\),那么只需要取出首尾两张骨牌即可 下面考虑一般情况 考虑将序列 \(S\) 做升序排序,位于 \(1\) 号骨牌前和 \(N\) 号骨牌后的骨牌都不需要再考虑了 取出 \(1\) 号骨牌和 \(N\) 号骨牌之间的 阅读全文
posted @ 2025-07-06 21:13 V_Melville 阅读(6) 评论(0) 推荐(0)

2025年7月5日

摘要: C. Large Queue 用队列维护二元组 (值,数量),本质上和ABC247D一样 代码实现 #include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; using 阅读全文
posted @ 2025-07-05 23:32 V_Melville 阅读(60) 评论(0) 推荐(0)

2025年6月15日

摘要: C. Rotatable Array 首先 \(k\) 中只有 \(k\%N\) 次操作有用 执行 \(i\) 次操作后,点 \(p\) 位置上的数就会变成 \((p+i)\%N\) 位置上的数 对于操作 \(3\),用一个变量 offset 记录 \(k\%N\) 的累加和即可 代码实现 #inc 阅读全文
posted @ 2025-06-15 01:23 V_Melville 阅读(42) 评论(0) 推荐(0)

2025年6月8日

摘要: C. Equilateral Triangle 注意到等边三角形的每条边对应的弧一定也相等,那么如果圆的周长 \(L\) 不是 \(3\) 的倍数的话,就一定无解 令 \(r = \dfrac{L}{3}\) 固定点 \(x_a\),它可以和点 \(x_a+r\) 以及点 \(x_a+2r\) 构成 阅读全文
posted @ 2025-06-08 00:25 V_Melville 阅读(21) 评论(0) 推荐(0)

2025年6月1日

摘要: C. Not All Covered 差分 代码实现 #include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; int main() { int n, m; cin >> 阅读全文
posted @ 2025-06-01 01:42 V_Melville 阅读(16) 评论(0) 推荐(0)

2025年5月31日

摘要: T1. 乾坤 容易有一个贪心,按费用从小到大使用符咒,符咒去消灭能消灭的能力值最大的妖怪这显然是对的。可以用小根堆来实现。 代码实现 #include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (n); ++i) using name 阅读全文
posted @ 2025-05-31 16:03 V_Melville 阅读(9) 评论(0) 推荐(0)
 
摘要: T1. 逆序对数 对于任何子序列 \(S\),自然有 \(inv(S) \leqslant inv(p)\),取等当且仅当对于任何 \(i < j, a_i > a_j, i, j\) 都在 \(S\) 中。那么如果存在 \(j < i\) 使得 \(a_j > a_i\) 或是存在 \(j > i 阅读全文
posted @ 2025-05-31 11:23 V_Melville 阅读(10) 评论(0) 推荐(0)

2025年5月25日

摘要: C. Security 2 要从反向模拟入手! 逆向思考后: 按钮 \(A\):移除末尾的0 按钮 \(B\):将S的所有数字减1 此时只需反复执行“按按钮 \(B\) 直到 \(S\) 末尾变为 \(0 \to\) 按按钮 \(A\) ” 即可。 如果每次按按钮 \(B\) 都实际改写整个字符串 阅读全文
posted @ 2025-05-25 00:38 V_Melville 阅读(81) 评论(0) 推荐(0)

2025年5月18日

摘要: C. ~ 注意到条件 \(2\),可知峰点在左谷点在右 也就是统计相邻两数之间满足 <<..<>..>><.. 这样的子段个数 考虑如何计算答案:固定中间所有的 >,然后两边的 < 任选,根据乘法原理,将两边的 < 的个数乘起来就是对答案的贡献 这里做一下字符串压缩再统计会比较方便 代码实现 #in 阅读全文
posted @ 2025-05-18 01:59 V_Melville 阅读(84) 评论(0) 推荐(0)