ABC286 上分记 & 解题报告
Atcoder Beginner Contest 286
解题记录【A~G】
A - Range Swap
分成 \(5\) 段:\([1,p-1],[r,s],[q+1,r-1],[p,q],[s+1,n]\) 依次输出即可。
B - Cat
依次遍历并输出各个字符。如果上一个字符是 n
而下一个字符是 a
,额外输出一个 y
即可。
C - Rotate and Palindrome
显然操作 \(1\) 最多做 \(n-1\) 次(否则又转回了原串)。枚举操作 \(1\) 的次数,操作 \(2\) 的次数可直接计算出来,更新答案即可。时间复杂度 \(O(n^2)\)。
D - Money in Hand
直接 dp 就行,二进制拆分/单调队列都不用,朴素复杂度只有 \(O(X\sum B_i)\)。
E - Souvenir
Floyd 板子,只不过有两个关键字。
F - Guess The Number 2
把 \(f\) 函数看成一个基环森林。最多可能有 \(10^9\) 次操作,但只有 \(110\) 个点,显然操作会掉入环中。
既然是环中,那么我们不应造出环外的点。设环的长度为 \(p\),我们可以知道 \(n\bmod p\) 的值。
类似 CRT 的思想,我们取一系列互质的 \(p\),且满足 \(\sum p_i\le110\) 且 \(\prod p_i\ge10^9\)。一组符合条件的解为 \(p=\{4,5,7,9,11,13,17,19,23\}\)。
G - Unique Walk
我们将 \(S\) 中的边叫“必要边”,不在 \(S\) 中的边叫“非必要边”。
因为我们可以随意使用非必要边,所以如果我们到达了一条非必要边的一个端点,我们也就到达了另一个端点。
也就是说,一个由非必要边组成的连通块完全可以视为一个点。
将“非必要边连通块”中的所有点缩成一个点,那么在新图上就只剩下必要边了。
剩下的就是判断新图是否可一笔画了。