上一页 1 2 3 4 5 6 ··· 21 下一页
摘要: E2. Divisible Numbers (hard version) 用 pollard rho 跑出 $ab$ 的质因数分解,然后 dfs 枚举 $ab$ 的所有因子对 $x, y$,如果存在 $k_1, k_2$ 使得 $a < k_1x \le c$ 且 $b < k_2y \le d$, 阅读全文
posted @ 2022-10-17 01:03 _Backl1ght 阅读(106) 评论(0) 推荐(0) 编辑
摘要: F. Multi-Colored Segments 观察: 如果某个位置上有大于等于两种不同的颜色,这个位置就可以更新任何颜色的线段的答案。 基于观察就可以通过模拟来解决问题了。 大概就是先离散话的处理一下,跑出每个位置上不同颜色的数量,以及如果这个位置上只有一种颜色,这个颜色是什么。 然后对于每个 阅读全文
posted @ 2022-10-13 00:14 _Backl1ght 阅读(98) 评论(0) 推荐(0) 编辑
摘要: E - Add and Mex 每个 $a_i$ 只有在 $0 \le a_i + k i \le n$ 时才会有贡献,即对于 $i$ 只有 $O(\frac{n}{i})$ 个操作是有效的。所以需要考虑的只有 $O(n\log n)$ 个 $a_i + ki$。 借助小顶堆从小到大枚举 $a_i 阅读全文
posted @ 2022-10-08 22:11 _Backl1ght 阅读(180) 评论(1) 推荐(2) 编辑
摘要: 咕咕咕咕。 E - Subsequence Path 最短路问题变种, Dijkstra 最短路改改就行了。 AC代码 // Problem: E - Subsequence Path // Contest: AtCoder - KYOCERA Programming Contest 2022(At 阅读全文
posted @ 2022-10-07 16:37 _Backl1ght 阅读(142) 评论(0) 推荐(4) 编辑
摘要: 咕咕咕。 D - Stones 冲了发贪心,然后 WA 。 然后想了个 DP,就令 $dp_{n, 0/1}$ 表示石头总数为 $n$ 时,先手/后手最多能拿多少个石头,然后跑个 $O(nk)$ 的DP就完事了。 AC代码 // Problem: D - Stones // Contest: AtC 阅读全文
posted @ 2022-09-24 23:15 _Backl1ght 阅读(475) 评论(0) 推荐(2) 编辑
摘要: A. Consecutive Sum 根据下标模 $k$ 的结果把数组分成 $k$ 类,连续的 $k$ 个数字必定种类互不相同,然后就把每一类最大的那个数求出来然后累加即可。 B. Rule of League 假设 $x < y$。 假设有 $a$ 个人赢 $x$ 场, $b$ 个人赢 $y$ 场 阅读全文
posted @ 2022-09-20 23:04 _Backl1ght 阅读(97) 评论(2) 推荐(1) 编辑
摘要: E - Chinese Restaurant (Three-Star Version) 假设旋转 $x$ 次时, $n$ 个人失望值的总和为 $c_x$,那么只要能求出 $c_x, 0 \le x < n$ 就可以包含所有情况,然后再取最小值即可。 对于第 $0$ 个人,假设 $p_0 = 0$,第 阅读全文
posted @ 2022-09-18 12:03 _Backl1ght 阅读(202) 评论(0) 推荐(1) 编辑
摘要: 咕咕咕咕咕。 F - Numbered Checker 首先矩形容斥,把一个询问拆分成 4 个询问。现在只需要解决:左上角为$(1, 1)$,右下角为 $(x, y)$ 的矩形区域和这一问题。 把列数为奇数和偶数的分开算,以奇数为例,偶数列同理可得。 第 1 列的上的非零元素可以组成一个首项元素为 阅读全文
posted @ 2022-09-18 01:27 _Backl1ght 阅读(290) 评论(1) 推荐(2) 编辑
摘要: E - Warp 注意到 $N$ 相比 $M$ 要小得多。 考虑 DP, 令 $dp_{i, j, k}$ 表示一共使用了 $i + j + k$ 次操作,且每种操作的使用次数分别为 $i, j, k$ 的方案数,然后用 std::set 容器快速判断能否转移到下一个状态(下一个点上是否有障碍物), 阅读全文
posted @ 2022-09-06 13:02 _Backl1ght 阅读(155) 评论(0) 推荐(1) 编辑
摘要: E - Erasing Vertices 2 做法1 观察可得:对于某个时刻,贪心删当前代价最小的点肯定是最优的。 但是删一个点会减少相邻接的点的代价。然后就想到了堆,但是这个堆需要支持decrease-key操作。 decrease-key 这个操作std::priority_queue并不支持, 阅读全文
posted @ 2022-09-04 01:38 _Backl1ght 阅读(195) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 ··· 21 下一页