随笔分类 - 快乐的一天从AC开始
每日刷题系列
摘要:D - Factorial and Multiple 对 $k$ 进行质因数分解。 如果 $k$ 最大的质因子 $p$ 满足 $p * p > k$ ,那么答案就是 $p$。因为一定要包含一次,也只需要包含一次。 否则直接爆搜。 AC代码 // #define MULTIPLE_TASK #incl
阅读全文
摘要:咕咕咕。 D - Freefall 三分求极值,注意下标得是整数,所以最后再搜索三分结果附近的整数。 直接求导应该也可以。 AC代码 // #define MULTIPLE_TASK #include "hira/main.cpp" void Initialize() {} void SolveCa
阅读全文
摘要:咕咕咕。 D - All Assign Point Add 把数拆分成 $base + delta$ 。 $base$ 就是操作一设置的数,初始时认为 $base = 0$;$delta$ 的维护可以有两种方法。 一种是我比赛时的做法,类似树状数组的时间戳优化额外维护一个时间戳,时间戳对不上就先清空
阅读全文
摘要:ABC略。 D. Make It Round 问题可以看成凑出尽可能多的 $10$ 作为因子。 注意到 $10$ 的因子只有 $1, 2, 5, 10$。 首先,$n$ 自己已经凑出来的 $10$ 没必要拆开,并不会更优。 然后就是看 $n$ 有多少个多余的 $2$ 或者 $5$,然后 $k$ 先尽
阅读全文
摘要:E - Crystal Switches 经典分层图。 搞两层图,一层对应初始状态,一层对应开了奇数次开关后的状态;假设点 $v$ 处有开关,就在两层图中 $v$ 对应的点间连一条边。 然后就是最短路板子了。 F - Sorting a Matrix $0$ 可以变成任何数,所以可以忽略。 观察:不
阅读全文
摘要:咕咕咕咕。 E - Round Trip 如果存在某个点双满足这个点双包含起点且点双大小大于 $4$ 则有解。 F - Double Chance 考虑不断在之前的基础上在末尾添加一个数,每次更新期望。 假设此前已经有 $i - 1$ 个数了,期望为 $E$ ,新添加的数为 $a_i$ 。 在 $i
阅读全文
摘要:A. Two Groups 数组和的绝对值即为答案。 B. BAN BAN 大概就是尽可能把前面的 B 搞到后面,尽可能把后面的 N 搞到前面。 答案为 $\lceil \frac{n}{2} \rceil$ ,操作为每次交换正数第 $i$ 个 BAN 的 B 和倒数第 $i$ 个 BAN 的 N
阅读全文
摘要:咕咕咕咕咕咕。 G - Infinite Knapsack 做法1 - 二分 假设第 $i$ 个物品选了 $x_i$ 个,$x_i$为非负整数,有 $$ \lim_{x \to +\infin} \frac{f(x)}{x} = \frac{\sum_i c_i x_i}{\max(\sum_i a
阅读全文
摘要:咕咕咕。 C2. Make Nonzero Sum (hard version) 易得有奇数个非零值时无解。 现在考虑将相邻的两个非零值配对,只要每一个非零值对都搞成和为零,总的和就为零。 由于非零值只有正负一,所以对于一个非零值对,考虑前者符号不变,看情况改变后者符号即可。 AC代码 // Pro
阅读全文
摘要:E - Booster TSP问题变种,典中典。 AC代码 // Problem: E - Booster // Contest: AtCoder - キーエンスプログラミングコンテスト2022(AtCoder Beginner // Contest 274) URL: https://atcode
阅读全文
摘要: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$,
阅读全文
摘要:F. Multi-Colored Segments 观察: 如果某个位置上有大于等于两种不同的颜色,这个位置就可以更新任何颜色的线段的答案。 基于观察就可以通过模拟来解决问题了。 大概就是先离散话的处理一下,跑出每个位置上不同颜色的数量,以及如果这个位置上只有一种颜色,这个颜色是什么。 然后对于每个
阅读全文
摘要: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
阅读全文
摘要:咕咕咕咕。 E - Subsequence Path 最短路问题变种, Dijkstra 最短路改改就行了。 AC代码 // Problem: E - Subsequence Path // Contest: AtCoder - KYOCERA Programming Contest 2022(At
阅读全文
摘要:咕咕咕。 D - Stones 冲了发贪心,然后 WA 。 然后想了个 DP,就令 $dp_{n, 0/1}$ 表示石头总数为 $n$ 时,先手/后手最多能拿多少个石头,然后跑个 $O(nk)$ 的DP就完事了。 AC代码 // Problem: D - Stones // Contest: AtC
阅读全文
摘要:A. Consecutive Sum 根据下标模 $k$ 的结果把数组分成 $k$ 类,连续的 $k$ 个数字必定种类互不相同,然后就把每一类最大的那个数求出来然后累加即可。 B. Rule of League 假设 $x < y$。 假设有 $a$ 个人赢 $x$ 场, $b$ 个人赢 $y$ 场
阅读全文
摘要:E - Chinese Restaurant (Three-Star Version) 假设旋转 $x$ 次时, $n$ 个人失望值的总和为 $c_x$,那么只要能求出 $c_x, 0 \le x < n$ 就可以包含所有情况,然后再取最小值即可。 对于第 $0$ 个人,假设 $p_0 = 0$,第
阅读全文