20220621
- rk 18/46, 52+50+5=107
- max: 100, 100, 75, 100+65+75=240
怎么越来越拉了。T1 硬优化了半天,压根没想到换做法;T2 懒得想直接暴力,但可能是最可做的;T3 xjb 糊了个贪心,具体分析一下特殊性质 20pts 应该是不难的
同样是三个暴力,rk3 68+45+75,大众分 150,暴力被拉开 50 分差还打个锤子。来 hz 之前教练就提到过队奶很稳,68+65+20 确实是应该拿到的分数。先立个 flag:暴力分不要低于队奶
给国与地震
顺序不影响修路的数量,用堆维护当前能修的边,贪心选最小的即可
考虑 \(s_{i}\le20\),用并查集维护连通性,额外用一个数据结构维护出边。每次合并后暴力遍历出边,若能修则加入堆。每次遍历 \(a_{i}+a_{j}\) 至少 \(+1\),每条边只会被遍历 \(s_{i}\) 次
考虑类似 APIO2022 T2 的优化方式:我们只关心 \(a_{u}+a_{v}\) 和 \(s_i\) 的相对大小,而不用真的维护 \(a_{u}+a_{v}\)。设阈值 \(\frac{s_{i}-a_{u}-a_{v}}{2}\),当 \(a_{u},a_{v}\) 各自的增量都小于该阈值时一定不会变合法。只在增量大于阈值时才判断该边是否合法,若不合法则新阈值至少减半,每条边只会被遍历 \(\log s_{i}\) 次
时间复杂度 \(O(m\log m\log s)\)
code
给国与时光机
考虑先构造一种粗劣的方案,再根据特殊情况修正
把点分成四类:N(左右都不经过)L(仅经过左边)R(仅经过右边)A(都经过)
显然先把 N 配对,相邻的 LR 配对(如果出现 LRLR,必然不能配对 RL)。剩下的 A 若为四的倍数,可以构造 \(A_1A_2A_1A_2\)(下标相同的配对)
若不是,考虑找到相对位置形如 LR A A LR A A 的点,构造 \(L_1R_2A_3A_4L_2R_1A_4A_3\),然后再按如上方式构造
其他情况均无解。容易发现这样构造是合法的,但不会证明必要性
可以证一下 \(m=2n+1,n\) 为奇数时无解:令 \(p_i\) 为走完 \((i-1,i)\) 这条边后会走 \((p_{i}-1,p_{i})\),初始 \(=i+1\),特别的,令 \(p_{2n}=1\)。\(p\) 构成一个置换,最终与 \(n\) 在同一置换环的可以被经过。加入一条边相当于交换 \(p_{i},p_{j}\),环的个数奇偶性改变。加入 \(n\) 条边意味着最终环的个数奇偶性与开始不同,无法使得最终只有一个环
code