ABC286 上分记 & 解题报告

Atcoder Beginner Contest 286

Contest link

Contest result

解题记录【A~G】

A - Range Swap

Problem link

分成 \(5\) 段:\([1,p-1],[r,s],[q+1,r-1],[p,q],[s+1,n]\) 依次输出即可。

Code link

B - Cat

Problem link

依次遍历并输出各个字符。如果上一个字符是 n 而下一个字符是 a,额外输出一个 y 即可。

Code link

C - Rotate and Palindrome

Problem link

显然操作 \(1\) 最多做 \(n-1\) 次(否则又转回了原串)。枚举操作 \(1\) 的次数,操作 \(2\) 的次数可直接计算出来,更新答案即可。时间复杂度 \(O(n^2)\)

Code link

D - Money in Hand

Problem link

直接 dp 就行,二进制拆分/单调队列都不用,朴素复杂度只有 \(O(X\sum B_i)\)

Code link

E - Souvenir

Problem link

Floyd 板子,只不过有两个关键字。

Code link

F - Guess The Number 2

Problem link

\(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\}\)

Code link

G - Unique Walk

Problem link

我们将 \(S\) 中的边叫“必要边”,不在 \(S\) 中的边叫“非必要边”。

因为我们可以随意使用非必要边,所以如果我们到达了一条非必要边的一个端点,我们也就到达了另一个端点。

也就是说,一个由非必要边组成的连通块完全可以视为一个点

将“非必要边连通块”中的所有点缩成一个点,那么在新图上就只剩下必要边了。

剩下的就是判断新图是否可一笔画了。

Code link

posted @ 2023-01-22 19:58  No_Play_Yes_Splay  阅读(53)  评论(0编辑  收藏  举报