摘要: R15 - 我想不出有趣的题目名称了所以这题就叫排列 题意 给定一个正整数 \(n\) 以及一个长度为 \(m\) 的序列 \(X\)。你需要求出有多少 \(1,2,\cdots,n\) 的排列 \(P_1,P_2,\cdots ,P_n\) 满足:该排列的所有长度为 \(m\) 的子序列中,字典序 阅读全文
posted @ 2025-09-23 21:20 Hengsber 阅读(11) 评论(0) 推荐(0)
摘要: P6619 [省选联考 2020 A/B 卷] 冰火战士 树状数组倍增板子。因为我们从大到小枚举 \(2^j\) 倍增时,加的那个数的 lowbit 肯定不断递减,具体地,在枚举到 \(j\) 时刚好就是 \(2^j\)。也就是说,我们正好能 \(O(1)\) 查到要跳到的那个数 \(p\) 的 $ 阅读全文
posted @ 2025-09-16 23:39 Hengsber 阅读(15) 评论(0) 推荐(0)
摘要: R14 - T1 序列 难度:黄 / 绿 题意 给定一个长为 \(n\) 的非负整数序列 \(a\),你可以进行任意次以下的操作: 选择一个区间 \([l,r]\),然后将 \(a_l,a_{l+1},\cdots,a_r\) 都减去 \(1\)。 你希望用最小的操作次数将 \(a\) 中的所有数变 阅读全文
posted @ 2025-09-14 19:23 Hengsber 阅读(28) 评论(0) 推荐(0)
摘要: P5909 挂坠 经典贪心:\(n\) 个任务,有时长 \(w_i\) 和必须在 \(c_i\) 之前开始的限制,求最多能完成几个任务。 交换邻项,可得策略按 \(w_i + c_i\) 从小到大排序。然后在按重量反悔贪心,发现两问一起解决了。 Code #include <bits/stdc++. 阅读全文
posted @ 2025-09-07 23:04 Hengsber 阅读(9) 评论(0) 推荐(0)
摘要: P3493 WSP-Island 调了很久,并发现了一些求半平面交的细节。 1.优雅地求两个直线的交点 考虑 \(l_1 : P_1 + k \times \vec{v_1}\) 和 \(l_2 : P_2 + t \times \vec{v_2}\) 的交点 \(O\)。假设 \(\vec{P_2 阅读全文
posted @ 2025-08-31 21:56 Hengsber 阅读(19) 评论(0) 推荐(0)
摘要: P2546 SZK - Mirror trap 第一问是 \(n / 2\)。我们考虑一条从顶点射出的光线,因为射出点不同,所以光线之间不会相交。而一个从顶点射出的光线一定会终止于某个顶点,所以是一一对应的。 构造方案的话,考虑旋转 45°,这样光线就是垂直于坐标轴的。然后维护连通性,具体来说,\( 阅读全文
posted @ 2025-08-24 21:49 Hengsber 阅读(17) 评论(0) 推荐(0)
摘要: P3457 POW-The Flood 当发现合并两个连通块会破坏一些性质时,可以考虑边合并边求出答案,贴一道相似思路以前也没做出来的题 Cave Paintings。 Code #include <bits/stdc++.h> using namespace std; const int N = 阅读全文
posted @ 2025-08-19 19:22 Hengsber 阅读(11) 评论(0) 推荐(0)
摘要: P4204 奥运物流 这个是所谓贡献后效性的 dp 问题,详见 2009 年徐源盛的论文。 Code #include <bits/stdc++.h> using namespace std; typedef long double ldb; const int N = 65; int n, m, 阅读全文
posted @ 2025-08-16 21:31 Hengsber 阅读(11) 评论(0) 推荐(0)