Codeforces Round #511 Div. 2

C题水题没做出来,反而猜对了D题,还好排名变化不大。

A. Little C Loves 3 I

题意

给出一个数 n n n,要求取三个不为 3 3 3倍数的数 a , b , c a, b, c a,b,c,满足 a + b + c = n a+b+c=n a+b+c=n

思路

n n n 3 3 3 0 0 0 1 1 1,则取 a = 1 , b = 1 , c = n − 2 a=1, b=1, c=n-2 a=1,b=1,c=n2;否则取 a = 1 , b = 2 , c = n − 3 a=1, b=2, c=n-3 a=1,b=2,c=n3

B. Cover Points

题意

给出一些位于第一象限的点,取三个顶点分别为 ( 0 , 0 ) (0, 0) (0,0) ( 0 , a ) (0, a) (0,a) ( a , 0 ) (a, 0) (a,0)的等腰三角形,求a的最小值使得三角形包含所有点。

思路

等腰三角形的底位于直线 x + y = a x+y=a x+y=a上,若三角形包含所有点,则每一个点 ( x i , y i ) (x_i, y_i) (xi,yi)满足 x i + y i ≤ a x_i+y_i\le a xi+yia,故 a = m a x { x i + y i } a = max\{ x_i+y_i \} a=max{xi+yi}

C. Enlarge GCD

题意

n n n个数,移除一些数可以使得所有数的最大公约数变大,问最少需要移除多少个数。

思路

f ( x ) f(x) f(x)表示 n n n个数中以 x x x为公约数的数量,那么只需要找到 x ′ x&#x27; x使得 x ′ &gt; x x&#x27;&gt;x x>x并且 f ( x ′ ) &lt; n f(x&#x27;)&lt;n f(x)<n,最少需要移除 n − f ( x ′ ) n-f(x&#x27;) nf(x)个数。借鉴线性筛质数的思想,先求出最大公约数,再递增筛选。若 x ′ x&#x27; x未被筛去,则筛去 x ′ x&#x27; x的所有倍数,并计算对应的数量之和 f ( x ′ ) f(x&#x27;) f(x),否则跳过,最后取 f ( x ′ ) f(x&#x27;) f(x)的最大值。

D. Little C Loves 3 II

题意

有一个 n × m n \times m n×m的棋盘,每次放置两枚曼哈顿距离为 3 3 3的棋子,问最多可以放置多少枚棋子。

思路

分别取 n n n m m m的较小值 a a a和较大值 b b b,若 a = 1 a=1 a=1,则棋盘大小为 1 × b 1 \times b 1×b,每连续 6 6 6格刚好可以放置 3 3 3对棋子,当剩下的格子等于 4 4 4时可以再放置 1 1 1对,等于 5 5 5时可以再放置 2 2 2对;若 a = 2 a=2 a=2,则棋盘大小为 2 × b 2 \times b 2×b,每连续 4 4 4 5 5 5 6 6 6格刚好可以放满棋子,故除了 1 1 1 2 2 2 3 3 3 7 7 7格以外均可以通过组合放满棋子, 1 1 1 2 2 2格不能放棋子, 3 3 3格只能放 1 1 1对棋子, 7 7 7格只能放 6 6 6对棋子;若 a ≥ 3 a \ge 3 a3,则可以尽可能多地放置棋子,当格子总数为偶数时可以放满,为奇数时空 1 1 1格,具体证明如下, 3 × 3 3 \times 3 3×3 3 × 4 3 \times 4 3×4 3 × 5 3 \times 5 3×5 3 × 6 3 \times 6 3×6 4 × 4 4 \times 4 4×4 4 × 5 4 \times 5 4×5以及 2 × 4 2 \times 4 2×4 2 × 5 2 \times 5 2×5 2 × 6 2 \times 6 2×6的棋盘可以尽可能放置棋子,其余棋盘可以通过组合得到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值