2020 Summer #1
0x01 Devu and his Brother
考虑将 \(\{ a_n \}\) 升序排序,\(\{ b_n \}\) 降序排序,令 \(a_{n+1} = 10^9\),\(b_{n+1} = -10^9\)。
然后考虑最小的 \(i \in [0, n]\),满足 \(a_{i+1} \geqslant b_{i+1}\)。
易知调整后对所有 \(1 \leqslant j \leqslant i\) 有 \(a_j = b_j = x\),其中 \(b_{i+1} \leqslant x \leqslant a_{i+1}\),此时花费的操作数最少,为 \(b_j - a_j\)。
0x02 Skills
若最低技能等级被确定,则可贪心求出满级技能个数,反之亦然。
注意到单调性,故可二分确定。
0x03 Subway Innovation
贪心,保留的地铁站一定是连续的 \(k\) 个。
排序后扫一遍。
0x04 Edo and Magnets
每次拿掉的磁铁肯定是上下左右的极值之一。
\(O(4^k)\) 暴力 DFS 或 \(O(k^4)\) 枚举每个方向拿掉多少个均可。
0x05 Mashmokh and Water Tanks
最优解中的点深度肯定是连续的。
所有点按深度升序排序,双指针扫。
0x06 Bear and Contribution
如果只有第二种操作,显然可以枚举 \(x\) + 双指针。
对于第一种操作,考虑 \(a_i \gets a_i + 5 - a_i \bmod 5\),即可类似地求解。
注意此时单调性仅存在于模 \(5\) 同余的 \(a_i\) 中,细节略有改变。
0x07 Gadgets for dollars and pounds
二分天数。
0x08 Castle Defense
二分答案。
0x09 GukiZ hates Boxes
二分时间。
每个人可以分开考虑。
0x0A Sweets for Everyone!
二分额外带多少颗糖。
如果当前在 H 且糖不够发,有两种贪心策略:
- 一直往下走到底,再回来一遍发完所有的糖。
- 往下走直到糖够发了直接回来。
0x0B Planning
如果有多架飞机在同一时刻起飞,必然让 \(c_i\) 最大的飞机在这一时刻起飞,其他飞机往后延迟。
每架飞机初始放在最早能起飞的位置,往后扫一遍。
0x0C Cartons of milk
肯定先喝保质期靠后的奶。
排序后倒着扫。
0x0D Social Network
双指针扫一遍每一个区间和第一个与它相交的区间,如果不同的编号不小于 \(m\) 个,就给当前区间编一个新号,否则和上一个区间用同一个编号。
0x0E Time to Raid Cowavans
\(b \leqslant \sqrt n\) 记忆化,\(b > \sqrt n\) 暴力跳,时空复杂度 \(O(n \sqrt n)\)。
但此题卡空间,上面的做法会 MLE。
此题没有修改操作,可以离线:对于 \(b \leqslant \sqrt n\) 的所有 \(b\),预处理出每一个剩余系的答案,将询问按 \(t\) 升序排序,双指针扫一遍。
空间复杂度降至 \(O(n)\)。
0x0F Maximum Value
去重后按值域分块。
0x10 GukiZ and GukiZiana
分块处理询问,multiset 块内查值。

浙公网安备 33010602011771号