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