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)

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

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

原文地址:https://www.cnblogs.com/zengzk/p/15168603.html