四月摸鱼记录
zhoukangyangAKIOI(详细揭秘)
zhoukangyang 显然 AKIOI摸鱼小游戏
https://epicpikaguy.itch.io/n-step-steve-part-1 https://epicpikaguy.itch.io/n-step-steve-part-2前半个月的以后再补(
IOI2009 Archery
由于 \(R\ge 2N\),可以猜测结论,在模拟 \(2N\) 轮后会进入循环:\(1\) 和 \(N+2\sim 2N\) 不动,\(2\sim N+1\) 循环移动。
首先对于环上的问题,可以破环成无限链考虑。发现(在链上)初始位置在 \(i\) 的话,最终位置比 初始位置在 \(i+1\) 一定会靠前。也就是说 \(ans_i\) 的序列递增,需要找到最小的 \(ans_i\bmod k\),可以每一段二分。
现在问题是对于一个初始位置快速模拟。把比自己好的叫做 \(0\),自己为 \(1\),比自己烂的叫做 \(2\)。
对于 \(u=N+2\sim 2N\),手玩发现,可以把 \(2\) 先匹配位置,然后找到 \(1\) 的位置。
对于 \(u=2\sim N+1\),可以发现其他的性质:在 \(i\) 轮后 \(1\) 位置更大的那一个一定是最大的;\(2\) 位置更大的那一个一定是 \(2\sim i+1\) 中最大的。可以模拟 \(2N\) 轮 \(1\) 位置发生的事件,掉下一个就放到 \(i+N\)。
联合省选 2023 城市建造
发现一个点双选了两个就要全选。
于是建立圆方树。对于一个方点,选了就等于周围的圆点全选;选的方点必须形成连通块。
大概就是这个充要条件。
联合省选 2023 染色数组
考虑一些性质,比如有的数只能做上升,有的数只能做下降,有的数两个都行。
考虑一下 两个都行的数,需要满足什么?
在这步可以发现很好的性质,两个都行的数 是一个区间,这个区间满足要么严格上升,要么严格下降,要么是恰好两个相等的数。区间前的数和区间后的数都是只能放下降或只能放上升。
考虑第二问,这个“权值”的形式实在非常诡异,一定是适应题目的设计。经过推导发现,只有 两个都行的数 中最后一个需要决定涂哪种颜色更优,前面的都是确定的。
CF1804H Code Lock
直接做很难做?考虑转化贡献。
把走的距离均摊到每条边上。对于 \(k\) 为偶数,两条对边的权值加起来等于两边集合互相跨越的个数,是固定的。对于奇数也有一样的结论。
于是可以只枚举半个环,枚举 \(\binom{k}{k/2}\) 个初始状态,每次删一个加一个,转移到下一个半环,每步的半环有一个贡献。
JOISC 2018 Day 3 安全门
JOI Final 2023 T5 现代机器(可强制在线)
首先思考一下,一个操作本质干了什么?发现是:
- 把 \(c_x\) 变成
R
; - 如果有 \(\ge x\) 个
L
就把前 \(x\) 个L
变成R
,否则把后 \(n-x+1\) 个R
变成L
。
考虑 subtask 5 的做法,就是每次把分界线 \(p\to (p+a_i+[a_i>p])\bmod n+1\)。
可以线段树维护,pushup 类似 【清华集训2014】玄学。
考虑没有 sub5 的性质,我们希望能模拟到有 sub5 的性质为止。
考虑记录一个当前的 R 前缀和当前的 L 后缀长度。一个一个操作下去:
- 如果操作点落在 R 前缀中或 L 后缀中,那就只是 R 前缀/L 后缀增加了长度,可以快速算。
- 否则,这次操作后或者 R 前缀或 L 后缀一定长度翻倍,或者变成有 sub5 的性质,只会发生 \(O(\log)\) 次。
第一种可以直接倍增跳过去;可以找到第二种操作发生的位置,对第二种暴力模拟。
上面就体现了 可以考虑快速跳过 trivial 的操作,然后发现剩下的 non-trivial 操作只有很少的数量级 这种思想。
P5624 [Celeste-A]Black Moonrise
拆一拆: \(\gcd(a_i,a_j)=\sum_{d|a_i,d|a_j}\varphi(d)\)。
考虑二次离线莫队。转化成的问题是:扫到一个 \(a_i\),枚举 \(i\) 的因数 \(d\),枚举(在序列中出现过的)所有 \(d\) 的倍数。
考虑根号分治,对一些 \(d\) 做前缀和处理,对一些 \(d\) 在 二次离线莫队 里做。
考虑对时间复杂度根号分治。
设一个 \(d\) 的“复杂度”为 \(\min(1,\frac{{序列中 d 的倍数个数}}{d})\),选复杂度最大的 \(B\) 个做前缀和,剩下的莫队。
做 AGC 不会做扔掉了,再重新回来做还是不会做。
今天又没做出来题。
AGC049F Happy Sequence
被虐了,以后再记
ptz summer 2022 day7 G : Battleship: New Rules
考虑玩家 A 如何构造。
题目要求“格点”不被占两次,而不是格子。一个 \(1\times x\) 的矩形,可以看作占了 \(2\times (x+1)\) 个格点。经过这样转化,就变成了求唯一的不被占据的格点,这个形式很好看。
如果格点有偶数个,会全部被占掉,答案为 -1. 如果有奇数个,那恰有一个没被占掉。
考虑二分,每次选长的一边切开。
ptz summer 2022 day7 A : Easy Problem
完全不会做啊。对这种题没有感觉。
鸽了
P9159 「GLR-R4」大暑
感觉是偏套路的题,但细节有点难编。
AGC061E Increment or XOR
题解写了。
AGC050F NAND Tree
大概想出来了,题解在路上了。
to do: