Codeforces Round #511 Div. 2

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

思路

nnn333000111,则取a=1,b=1,c=n−2a=1, b=1, c=n-2a=1,b=1,c=n2;否则取a=1,b=2,c=n−3a=1, b=2, c=n-3a=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=ax+y=ax+y=a上,若三角形包含所有点,则每一个点(xi,yi)(x_i, y_i)(xi,yi)满足xi+yi≤ax_i+y_i\le axi+yia,故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&#x27;x使得x′&gt;xx&#x27;&gt;xx>x并且f(x′)&lt;nf(x&#x27;)&lt;nf(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×mn \times mn×m的棋盘,每次放置两枚曼哈顿距离为333的棋子,问最多可以放置多少枚棋子。

思路

分别取nnnmmm的较小值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,每连续444555666格刚好可以放满棋子,故除了111222333777格以外均可以通过组合放满棋子,111222格不能放棋子,333格只能放111对棋子,777格只能放666对棋子;若a≥3a \ge 3a3,则可以尽可能多地放置棋子,当格子总数为偶数时可以放满,为奇数时空111格,具体证明如下,3×33 \times 33×33×43 \times 43×43×53 \times 53×53×63 \times 63×64×44 \times 44×44×54 \times 54×5以及2×42 \times 42×42×52 \times 52×52×62 \times 62×6的棋盘可以尽可能放置棋子,其余棋盘可以通过组合得到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值