ATC 摸索记录
作者:互联网
ATC 做题记录
2022.6.17
ARC079
A:模拟。
B:考虑先构造一个最终状态,然后通过把一个数加 \(n\)(保证它加完后是最大的), 其他数减 \(1\) 的操作得到初始序列。首先有一个结论是:按照这种方式进行操作,对于一个连续的值域 \([l,l+n-1]\) ,操作 \(n\) 次后会变成 \([l+1,l+n]\) ,于是直接模拟这个操作 \(\dfrac{k}{n}\) 次 , 再从小到大把剩下 \(k \mod n\) 次执行即可。
C:如果一个数 \(\geq n\), 那么一定是会被减的, 于是模拟。把最大数找出来,可以算出多少次后 \(< n\), 复杂度是 \(\log_{1.02} V\) 的。
D:容易发现图是个外向基环树,按照题目的要求可以对每一个挂着的节点做一次树形 dp, 求子树的 mex。然后可以直接枚举环上的点的权值,复杂度可以证明是 \(O(n\log n)\) 。看题解区还有一个结论:若环上所有点权相同且为奇环则无解。
ARC080
A,B:模拟。
C:很容易找到规律,用线段树来优化这个分治即可。
D:先把异或序列差分,此时有 1 的位置一定只有偶数个。
于是就变成了 P3943 星空, 结论是两两 1 匹配,费用是 \(p_x - p_y\)。 设 \(w = p_x - p_y\), 考虑 \(w\) 要用几个奇素数拼出来。
-
若 w 为奇素数,一次即可。
-
若 w 为偶数 : 若 w = 2, 先取 5 再取 3 即可; 若 w = 4, 先取 7 再取 11 即可。
若 w > 4, 由哥德巴赫猜想(一个大于 2 的偶数可以写成两个奇素数的和)可知, 需要两个。
综上:若 w 为偶数, 需要 2 次。
-
若 w 为奇合数 : 若 w = 1, 取 5, 7, 13 即可。 若 w = 3,取 7, 27, 37 即可。
若 w > 3,可以把 w 写成 3 + (w - 3), 其中 (w - 3) 为偶数, 需要两次,故总需要 3 次。
综上:若 w 为奇合数, 需要 3 次。
直接建图是不行的,因为这是一般图最大权匹配问题。考虑贪心, 先尽量选权值为 1 的边,再选 2, 3。
按奇偶分类, 则奇偶之间的连边为奇数, 先把奇素数的边选了, 再在奇偶内部互相选,边权为 2。
若奇偶都有剩余,则选一个边权为 3 的边。
标签:奇偶,ATC,记录,摸索,为奇,偶数,素数,即可,模拟 来源: https://www.cnblogs.com/henrici3106/p/16386890.html