C题水题没做出来,反而猜对了D题,还好排名变化不大。
A. Little C Loves 3 I
题意
给出一个数nnn,要求取三个不为333倍数的数a,b,ca, b, ca,b,c,满足a+b+c=na+b+c=na+b+c=n。
思路
若nnn模333得000或111,则取a=1,b=1,c=n−2a=1, b=1, c=n-2a=1,b=1,c=n−2;否则取a=1,b=2,c=n−3a=1, b=2, c=n-3a=1,b=2,c=n−3。
B. Cover Points
题意
给出一些位于第一象限的点,取三个顶点分别为(0,0)(0, 0)(0,0)、(0,a)(0, a)(0,a)和(a,0)(a, 0)(a,0)的等腰三角形,求a的最小值使得三角形包含所有点。
思路
等腰三角形的底位于直线x+y=ax+y=ax+y=a上,若三角形包含所有点,则每一个点(xi,yi)(x_i, y_i)(xi,yi)满足xi+yi≤ax_i+y_i\le axi+yi≤a,故a=max{xi+yi}a = max\{ x_i+y_i \}a=max{xi+yi}。
C. Enlarge GCD
题意
有nnn个数,移除一些数可以使得所有数的最大公约数变大,问最少需要移除多少个数。
思路
设f(x)f(x)f(x)表示nnn个数中以xxx为公约数的数量,那么只需要找到x′x'x′使得x′>xx'>xx′>x并且f(x′)<nf(x')<nf(x′)<n,最少需要移除n−f(x′)n-f(x')n−f(x′)个数。借鉴线性筛质数的思想,先求出最大公约数,再递增筛选。若x′x'x′未被筛去,则筛去x′x'x′的所有倍数,并计算对应的数量之和f(x′)f(x')f(x′),否则跳过,最后取f(x′)f(x')f(x′)的最大值。
D. Little C Loves 3 II
题意
有一个n×mn \times mn×m的棋盘,每次放置两枚曼哈顿距离为333的棋子,问最多可以放置多少枚棋子。
思路
分别取nnn和mmm的较小值aaa和较大值bbb,若a=1a=1a=1,则棋盘大小为1×b1 \times b1×b,每连续666格刚好可以放置333对棋子,当剩下的格子等于444时可以再放置111对,等于555时可以再放置222对;若a=2a=2a=2,则棋盘大小为2×b2 \times b2×b,每连续444、555或666格刚好可以放满棋子,故除了111、222、333、777格以外均可以通过组合放满棋子,111、222格不能放棋子,333格只能放111对棋子,777格只能放666对棋子;若a≥3a \ge 3a≥3,则可以尽可能多地放置棋子,当格子总数为偶数时可以放满,为奇数时空111格,具体证明如下,3×33 \times 33×3、3×43 \times 43×4、3×53 \times 53×5、3×63 \times 63×6和4×44 \times 44×4、4×54 \times 54×5以及2×42 \times 42×4、2×52 \times 52×5、2×62 \times 62×6的棋盘可以尽可能放置棋子,其余棋盘可以通过组合得到。