ICPC Central Russia Regional Contest (CRRC 19)题解

题目连接:https://codeforces.com/gym/102780

寒假第二次训练赛,(某菜依旧是4个小时后咕咕咕),战况还行,个人表现极差(高级演员)

A:Green tea

暴力枚举即可

B:Mysterious Resistors

注意到电阻阻值具有单调性,二分

C:Emoticons

据说是模拟

D:Power play

由唯一分解定理可得,(x=a^{frac{p}{q}}) ,由于(xleq10^{18})(x)为整数,故(p,q)的范围极小,枚举即可

E:Printed circuit board

补题ing

F:A word game

组合游戏,sg函数很好求,找规律或者递推都行

G:Hourglass

补题ing

H:Men's showdown

水题

I:Andrew and Python

先经过一次询问将正方形缩减成一个等腰直角三角形区域

对于三角形区域,要查找的点肯定在斜边的某条平行线上,二分找到这条平行线

再对这条平行线进行二分

J:Something that resembles Waring's problem

容易知道 ((a-1)^3+(a+1)^3+(-a)^3+(-a)^3=6a),我们可以用4个数表示出任意6的倍数,再通过1个数表示模6的余数

(x=(x\%6)^3+(frac{x-(x\%6)^3}{6}+1)^3+(frac{x-(x\%6)^3}{6}-1)^3+(-frac{x-(x\%6)^3}{6})^3+(-frac{x-(x\%6)^3}{6})^3)

K:Parabolic sorting

如果从整体考虑,这题将会很棘手,不妨考虑单个数的贡献

对于每个数考虑它放在递减序列还是递增序列,将左侧小于它的数的个数与右侧大于它的数的个数取较小值即为当前数的贡献

还有一种更加易懂的做法就是从大到小依次考虑每个数放在递减序列还是递增序列,以最大的数为例,它必须放在最左侧或者最右侧,它放置完后次大值同理

总结:

debug效率低下

容易僵化在错误的方向

个人思维能力需要提升

原文地址:https://www.cnblogs.com/hyheng/p/14264678.html