Codeforces Round #739 (Div. 3)

A. Dislike of Threes

打表

B. Who's Opposite?

\(a\)\(b\)相隔\(\dfrac{n}{2}\),然后就可以算出\(n\)

如果\(a, b, c\)不在\([1, n]\)内则无解。

然后在找出和\(c\)相隔\(\dfrac{n}{2}\)的点就行了。

C. Infinity Table

\([1, x^2]\)的元素位于左上角边长为\(x\)的正方形内。

找到\(x ^ 2 < k\)的最大的\(x\),然后再分类讨论出坐标。

D. Make a Power of Two

对于操作2,之后必定不会再用操作1删掉,这样就不如不添加。

然后就可以推出必定是先通过操作1把给定树搞成某个满足条件的树的前缀,然后再通过操作2补足剩余的位置。

满足条件的数不多,直接枚举。

E. Polycarp and String Transformation

可以逆着推。

最后一个字符串必定是最后一个删除的字符,往前找到一个后面没有的字符,这个字符就是倒数第二个删除的字符,以此类推,就可以得出删除序列。

根据删除序列,又可以根据字符出现的次数推出原始字符串:假设现在执行完了第\(k\)步,这一步删除的字符为ch,那么当前\(t\)中,ch的出现次数除以k就是初始时\(s\)ch出现的次数。然后逆着跑一遍,就可以跑出原始序列。

现在的原始序列不一定时正确的,再根据原始序列和操作序列得出\(t^\prime\),看是否和\(t\)相同。

F2. Nearest Beautiful Number (hard version)

大于等于,可以直接判断等于。

现在只需要考虑大于的情况,而大于等价于:数某个前缀相等,接下来一位大,后续就可以全部填最小值。然后枚举是那一位大就完事了。

posted @ 2021-08-20 23:50  _Backl1ght  阅读(44)  评论(0编辑  收藏  举报