2019 ICPC南京站部分官方题解

A. A Hard Problem

对于nnn个数,其中有⌈n2⌉\lceil \frac{n}{2} \rceil2n个奇数。对于这nnn个数,都可以表示为a×2ka\times 2^ka×2k这种形式。其中,k≥0k\geq 0k0aaa为奇数且a≤na\leq nan。我们从中取出(⌈n2⌉+1)(\lceil \frac{n}{2}\rceil +1)(2n+1)个数字,将它们表示成上述的形式,根据鸽笼原理,那么其中一定有两个数具有相同的aaa,那么这两个数可以表示成a×2pa\times 2^pa×2pa×2qa \times 2^qa×2q,那么一个数必定是另一个数的因数。

接下来,如果我们选择$\lceil \frac{n}{2}\rceil 个数,如果我们现在选择最大的个个数,如果我们现在选择最大的个\lceil \frac{n}{2} \rceil 数,这时候,对于每一个数数,这时候,对于每一个数b,与它最接近的并且是它因子的数,与它最接近的并且是它因子的数\frac{b}{2}$一定在剩下的没有选择的数中。因此,选出这么多数是不成立的。

综上,答案为⌈n2⌉+1\lceil \frac{n}{2} \rceil +12n+1

B. Chessboard

首先,我们可以观察到如下几个不难证明的性质:

  1. 两个被染上颜色的格子之间的距离始终为:曼哈顿距离。
  2. 一个染色方案是合法的,当且仅当:任何时刻,每行/列被染色的格子要么不存在,要么是连续的一段。
  3. 如果当前被染色的区域是个矩形,那么最后一个被染色的点,一定在角上。

接下来,可以手玩一些例子:

#和$ 代表被染色的格子,$ 是最后一个被染色的格子,. 代表未染色的格子,当前状态为下所示。

....  
....
##$.
###.

先随便走一步

....  
..$.
###.
###.

这时,受到命运的指引,我们接下来必须扩充一行。为什么呢?

如果接下来我下一步就是不去 A,跑到别的地方去玩。(如下:我们将 3 个未染色的格子标记成 ABC)

.B..  
CA$.
###.
###.

那接下来要想给 A 染色我是不是必须到达 B,C 中的某个一个格子呢?等到那个时候… 完蛋了啊!!!

因此,我下一步必须去 A,下下步必须去 C。

于是,可以得出以下结论:

如果当前被染色的区域是个 r(r≥2)r(r \geq 2)r(r2)c(c≥2)c(c \geq 2)c(c2) 列的矩形,那么接下来要么扩充成 r+1r+1r+1ccc 列的矩阵(扩充行),要么扩充成

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值