A. A Hard Problem
对于 n n n个数,其中有 ⌈ n 2 ⌉ \lceil \frac{n}{2} \rceil ⌈2n⌉个奇数。对于这 n n n个数,都可以表示为 a × 2 k a\times 2^k a×2k这种形式。其中, k ≥ 0 k\geq 0 k≥0, a a a为奇数且 a ≤ n a\leq n a≤n。我们从中取出 ( ⌈ n 2 ⌉ + 1 ) (\lceil \frac{n}{2}\rceil +1) (⌈2n⌉+1)个数字,将它们表示成上述的形式,根据鸽笼原理,那么其中一定有两个数具有相同的 a a a,那么这两个数可以表示成 a × 2 p a\times 2^p a×2p和 a × 2 q a \times 2^q a×2q,那么一个数必定是另一个数的因数。
接下来,如果我们选择$\lceil \frac{n}{2}\rceil 个 数 , 如 果 我 们 现 在 选 择 最 大 的 个 个数,如果我们现在选择最大的个 个数,如果我们现在选择最大的个\lceil \frac{n}{2} \rceil 数 , 这 时 候 , 对 于 每 一 个 数 数,这时候,对于每一个数 数,这时候,对于每一个数b , 与 它 最 接 近 的 并 且 是 它 因 子 的 数 ,与它最接近的并且是它因子的数 ,与它最接近的并且是它因子的数\frac{b}{2}$一定在剩下的没有选择的数中。因此,选出这么多数是不成立的。
综上,答案为 ⌈ n 2 ⌉ + 1 \lceil \frac{n}{2} \rceil +1 ⌈2n⌉+1。
B. Chessboard
首先,我们可以观察到如下几个不难证明的性质:
- 两个被染上颜色的格子之间的距离始终为:曼哈顿距离。
- 一个染色方案是合法的,当且仅当:任何时刻,每行/列被染色的格子要么不存在,要么是连续的一段。
- 如果当前被染色的区域是个矩形,那么最后一个被染色的点,一定在角上。
接下来,可以手玩一些例子:
#和$
代表被染色的格子,$
是最后一个被染色的格子,.
代表未染色的格子,当前状态为下所示。
....
....
##$.
###.
先随便走一步
....
..$.
###.
###.
这时,受到命运的指引,我们接下来必须扩充一行。为什么呢?
如果接下来我下一步就是不去 A,跑到别的地方去玩。(如下:我们将 3 个未染色的格子标记成 ABC)
.B..
CA$.
###.
###.
那接下来要想给 A 染色我是不是必须到达 B,C 中的某个一个格子呢?等到那个时候… 完蛋了啊!!!
因此,我下一步必须去 A,下下步必须去 C。
于是,可以得出以下结论:
如果当前被染色的区域是个 r ( r ≥ 2 ) r(r \geq 2) r(r≥2) 行 c ( c ≥ 2 ) c(c \geq 2) c(c≥2) 列的矩形,那么接下来要么扩充成 r + 1 r+1 r+1 行 c c c 列的矩阵(扩充行),要么扩充成 r r r 行 c + 1 c+1 c+1 列的矩形(扩充列)。并且根据当前状态中最后一个被染色的格子在哪个角上,扩充行/列的方案都是唯一的。
从 1 ∗ 1 1*1 1∗1 的矩阵,到 n ∗ m n*m n∗m 的矩阵,一共要扩充 n + m − 2 n+m-2 n+m−2 次,其中有 n − 1 n-1 n−1 次是扩充行,这样的决策有 ( n + m − 2 n − 1 ) \binom{n+m-2}{n-1} (n−1n+m−2) 种,根据最后一个被染色的格子在哪个角上,方案数为 4 ∗ ( n + m − 2 n − 1 ) 4*\binom{n+m-2}{n-1} 4∗(n−1n+m−2)
Corner case: n = 1 n=1 n=1 或者 m = 1 m=1 m=1,小心特判掉即可。
C. Digital Path
用 d p [ i ] [ j ] [ k ] dp[i][j][k] dp[i][j][k]表示结尾是 ( i , j ) (i,j) (i,j) 且长度为 k k k的左端不能扩展的路径方案数,这里的 k k k最大为 4 4 4,我们初始化长度为 1 1 1的不能向左扩展的路径对应的状态,然后按照格子的权值从小到大的顺序 d p dp dp即可,最后累和方案数的时候注意判断路径是否可以往右扩展。
D. Hole
- 定义 p ( k , x , y ) p(k,x,y) p(k,x,y) 为从起点,随机游走 k k k 步后在 ( x , y ) (x,y) (x,y) 的概率, P ( x , y ) = ∑ k = 0 + ∞ p ( k , x , y ) P(x,y)=\sum_{k=0}^{+\infty} p(k,x,y) P(x,y)=∑k=0+∞p(k,x,y),
- 定义 e ( k , x , y ) = p ( k , x , y ) ∗ k e(k,x,y) = p(k,x,y) * k e(k,x,y)=p(k,x,y)∗k, E ( x , y ) = ∑ k = 0 + ∞ e ( k , x , y ) E(x,y)=\sum_{k=0}^{+\infty} e(k,x,y) E(x,y)=∑k=0+∞e(k,x,y)
- 那么对每个洞 ( x , y ) (x,y) (x,y), E ( x , y ) P ( x , y ) \frac{E(x,y)}{P(x,y)} P(x,y)E(x,y) 即为答案。
- 定义
o
u
t
(
x
,
y
)
out(x,y)
out(x,y) 为
(
x
,
y
)
(x,y)
(x,y) 的出度,设走一步能到达
(
x
,
y
)
(x,y)
(x,y) 的
q
q
q 个点为
(
x
1
′
,
y
1
′
)
,
.
.
.
.
(
x
q
′
,
y
q
′
)
(x'_1, y'_1),....(x'_q,y'_q)
(x1′,y1′),....(xq′,yq′)。那么当
k
≥
1
k \geq 1
k≥1 时,有
- p ( k , x , y ) = ∑ i = 1 q p ( k − 1 , x i ′ , y i ′ ) o u t ( x i ′ , y i ′ ) p(k,x,y) = \sum_{i=1}^{q}\frac{p(k-1,x_i',y_i')}{out(x_i',y_i')} p(k,x,y)=∑i=1qout(xi′,yi′)p(k−1,xi′,yi′),
- e ( k , x , y ) k = ∑ i = 1 q e ( k − 1 , x i ′ , y i ′ ) ( k − 1 ) o u t ( x i ′ , y i ′ ) \frac{e(k,x,y)}{k} = \sum_{i=1}^{q}\frac{e(k-1,x_i',y_i')}{(k-1)out(x_i',y_i')} ke(k,x,y)=∑i=1q(k−1)out(xi′,yi′)e(k−1,xi′,yi′)
- 对以上两个式子,的等式最右边,分别将 k 从 1 到正无穷进行累和,分别可以得到关于 P ( x , y ) , E ( x , y ) P(x,y), E(x,y) P(x,y),E(x,y) 的两个线性方程组。
- P ( x , y ) , E ( x , y ) P(x,y), E(x,y) P(x,y),E(x,y)可用高斯消元求出,因为有 O ( n m ) O(nm) O(nm) 个变量,进行高斯消元复杂度为 O ( n 3 m 3 ) O(n^3m^3) O(n3m3)。
- 注意到所有的变量都可以写成关于“棋盘中每行第一个从起点能到达的点对应的变量”的线性函数,如此一来变量数可以减少到 O ( n ) O(n) O(n) 个,高斯消元的复杂度为 O ( n 3 ) O(n^3) O(n3)。
I. Space Station
f ( c [ ] ) f(c[]) f(c[]) 表示,从“权值为 i i i 的点,恰有 c [ i ] c[i] c[i] 个被访问过”的状态出发,访问所有点,有几种方案。
- 当 ∑ i = 1 m i c [ i ] ≥ m \sum_{i=1}^{m}ic[i] \geq m ∑i=1mic[i]≥m 时,剩下的点可以任意次序访问。
- 当 ∑ i = 1 m i c [ i ] < m \sum_{i=1}^{m}ic[i] < m ∑i=1mic[i]<m 时,可以验证 ∑ i = 1 m i c [ i ] < m \sum_{i=1}^{m} ic[i] < m ∑i=1mic[i]<m 的非负整数解不会太多,对 f ( c [ ] ) f(c[]) f(c[]) 记忆化搜索即可,事实上, ∑ i = 1 m i c [ i ] = x \sum_{i=1}^{m} ic[i] = x ∑i=1mic[i]=x, ( x ≤ m ) (x \leq m) (x≤m) 的解数为 x x x 的有序拆分数。
K. Triangle
首先枚举P在哪个边上,用叉积和点积来判断,如果确定了P在AB边上,然后就是求平分线PE,假设P离得A近,那么E一定落在BC上,我们以这种情况举例子,其他同理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pE7egbeU-1575275555709)(C:\Users\黄敏聪\AppData\Roaming\Typora\typora-user-images\image-20191130122848970.png)]
解法1:
根据叉积算面积的方法, ∣ B A ∣ × ∣ B C ∣ × s i n B × 0.5 = ∣ B P ∣ × ∣ B E ∣ × s i n B |BA|\times|BC|\times sinB\times 0.5=|BP|\times|BE|\times sinB ∣BA∣×∣BC∣×sinB×0.5=∣BP∣×∣BE∣×sinB,直接算出 ∣ B E ∣ |BE| ∣BE∣进而求出点E
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DNYVo3HG-1575275555710)(C:\Users\黄敏聪\AppData\Roaming\Typora\typora-user-images\image-20191130123037020.png)]
解法2:
取AB中点D,则CD为一条平分线,连接PC,过点D做DE平行于PC交BC与点E,则PE即为平分线。
证明:可以证出下面红色部分两三角形面积相等然后有PEB的面积和BCD相等.