NJU 2021 计算机拔尖(数学)测试 解题报告

NJU 2021 计算机拔尖(数学)测试 解题报告

试题链接, 万分感谢 Fiddie 大佬提供试题!!!

因为要准备 2022 计算机拔尖所以稍微写了一下,感觉难度很大。

1

题目 设自然数 n > 1 n>1 n>1, 现有 n − 1 n-1 n1 个分数 1 n , 2 n , ⋯   , n − 1 n \dfrac{1}{n}, \dfrac{2}{n}, \cdots, \dfrac{n-1}{n} n1,n2,,nn1, 将这些分数化为最简分数, 把这些最简分数的分子相加, 得到的和记为 f ( n ) f(n) f(n). 请问: 对哪些自然数 n n n, f ( n ) f(n) f(n) f ( 2021 n ) f(2021n) f(2021n) 中的一个是奇数, 另一个是偶数? 并给出严格证明.

解答 容易得到

f ( n ) = ∑ i = 1 n − 1 i gcd ⁡ ( n , i ) f(n)=\sum_{i=1}^{n-1}\dfrac{i}{\gcd(n,i)} f(n)=i=1n1gcd(n,i)i

注意到 gcd ⁡ ( n , i ) = gcd ⁡ ( n , n − i ) \gcd(n,i)=\gcd(n,n-i) gcd(n,i)=gcd(n,ni);

n n n 为奇数时, 我们把 i i i n − i n-i ni 组合在一起.

f ( n ) = ∑ i = 1 n − 1 2 ( i gcd ⁡ ( n , i ) + n − i gcd ⁡ ( n , n − i ) ) = ∑ i = 1 n − 1 2 n gcd ⁡ ( n . i ) \begin{aligned} f(n) =&\sum_{i=1}^{\frac{n-1}{2}}\left(\dfrac{i}{\gcd(n,i)}+\dfrac{n-i}{\gcd(n,n-i)}\right)\\ =&\sum_{i=1}^{\frac{n-1}{2}}\dfrac{n}{\gcd(n.i)} \end{aligned} f(n)==i=12n1(gcd(n,i)i+gcd(n,ni)ni)i=12n1gcd(n.i)n

由于 n n n 为奇数, 则 gcd ⁡ ( n , i ) \gcd(n,i) gcd(n,i) 为奇数, n gcd ⁡ ( n , i ) \dfrac{n}{\gcd(n,i)} gcd(n,i)n 为奇数, 故

f ( n ) = ∑ i = 1 n − 1 2 n gcd ⁡ ( n , i ) ≡ n − 1 2 ( m o d 2 ) f(n)=\sum_{i=1}^{\frac{n-1}{2}}\dfrac{n}{\gcd(n,i)}\equiv \dfrac{n-1}{2}\pmod 2 f(n)=i=12n1gcd(n,i)n2n1(mod2)

n ≡ 1 ( m o d 4 ) n\equiv 1\pmod 4 n1(mod4), f ( n ) ≡ 0 ( m o d 2 ) f(n)\equiv 0\pmod 2 f(n)0(mod2);

n ≡ 3 ( m o d 4 ) n\equiv 3\pmod 4 n3(mod4), f ( n ) ≡ 1 ( m o d 2 ) f(n)\equiv 1\pmod 2 f(n)1(mod2).

然后我们考虑 n = 2 k ⋅ t ( k ≥ 1 , 2 ∤ t ) n=2^k\cdot t(k\ge 1, 2\nmid t) n=2kt(k1,2t) 的情况.

f ( 2 k ⋅ t ) = ∑ i = 1 2 k ⋅ t − 1 i gcd ⁡ ( 2 k ⋅ t , i ) = ∑ i = 1 , 2 ∣ i 2 k ⋅ t − 1 i gcd ⁡ ( 2 k ⋅ t , i ) + ∑ i = 1 , 2 ∤ i 2 k ⋅ t − 1 i gcd ⁡ ( 2 k ⋅ t , i ) \begin{aligned} f(2^k\cdot t)=&\sum_{i=1}^{2^k\cdot t-1}\dfrac{i}{\gcd(2^k\cdot t, i)} \\ =&\sum_{i=1, 2\mid i}^{2^k\cdot t-1}\dfrac{i}{\gcd(2^k\cdot t, i)}+\sum_{i=1,2\nmid i}^{2^k\cdot t-1}\dfrac{i}{\gcd(2^k\cdot t, i)} \end{aligned} f(2kt)==i=12kt1gcd(2kt,i)ii=1,2i2kt1gcd(2kt,i)i+i=1,2i2kt1gcd(2kt,i)i

对于前一项, 由于 i i i 为偶数, 我们可以上下都除以 2 2 2; 对于后一项, 由于 i i i 为奇数, 则那个分数为奇数, 可采取类似于上面的思路.

f ( 2 k ⋅ t ) ≡ ∑ i = 1 2 k − 1 ⋅ t − 1 i gcd ⁡ ( 2 k − 1 ⋅ t , i ) + 2 k − 1 ⋅ t ≡ f ( 2 k − 1 ⋅ t ) + 2 k − 1 ⋅ t ( m o d 2 ) \begin{aligned} f(2^k\cdot t)\equiv&\sum_{i=1}^{2^{k-1}\cdot t-1}\dfrac{i}{\gcd(2^{k-1}\cdot t, i)}+2^{k-1}\cdot t \\ \equiv&f(2^{k-1}\cdot t)+2^{k-1}\cdot t\pmod 2 \end{aligned} f(2kt)i=12k1t1gcd(2k1t,i)i+2k1tf(2k1t)+2k1t(mod2)

这是一个递归式, 但到这里就足够了. 结合上面的讨论, 我们将 n n n 分解为 n = 2 k ⋅ t , ( k ≥ 0 , 2 ∤ t ) n=2^k\cdot t, (k\ge 0, 2\nmid t) n=2kt,(k0,2t) 的形式, 那么 f ( n ) f(n) f(n) 的求解可用上面的递归式, 再根据 t t t 的奇偶性判断, 即 f ( n ) f(n) f(n) 只和 k , t k,t k,t 有关.

2021 n 2021n 2021n 未提供新的 2 2 2 的幂次, 故 k k k 相同; 又没有改变 t t t 4 4 4 的值(因为 2021 t ≡ t ( m o d 4 ) 2021t\equiv t\pmod 4 2021tt(mod4), 所以 f ( 2021 n ) ≡ f ( n ) ( m o d 2 ) f(2021n)\equiv f(n)\pmod 2 f(2021n)f(n)(mod2).

综上, 不存在这样的 n n n 使得 f ( n ) f(n) f(n) f ( 2021 n ) f(2021n) f(2021n) 奇偶性不同.

总结 首先要根据题目信息, 合理构建数学模型(即得到式子), 然后再仔细分析, 努力抓住题目关键点(在这道题中是 f ( n ) f(n) f(n) 只要在模 2 2 2 意义下进行运算).


2

题目 现有 8 × 8 8\times 8 8×8 方格表, 每个格子里有 1 1 1 个人, 这个人可能是好人或者骗子, 好人全说真话, 骗子全说假话. 这 64 64 64 个人全部都说:“我所在的列里的骗子数量不少于我所在的行里的骗子数量”, 求共有多少种放人方法?(即有多少个不同的方格表满足这个性质)

解答 转化为一个 0/1 的 8 × 8 8\times 8 8×8 的矩阵(1 为真话, 0 为假话):

[ a 11 a 12 ⋯ a 18 a 21 a 22 ⋯ a 28 ⋮ a 81 a 82 ⋯ a 88 ] \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{18} \\ a_{21} & a_{22} & \cdots & a_{28} \\ \vdots \\ a_{81} & a_{82} & \cdots & a_{88} \end{bmatrix} a11a21a81a12a22a82a18a28a88

r i r_i ri 表示第 i i i 行的 1 的个数, c j c_j cj 表示第 j j j 列的 1 的个数. 那么

a i j = 1 ⇔ r i ≥ c j a i j = 0 ⇔ r i < c j \begin{aligned} a_{ij}=1\Leftrightarrow& r_i\ge c_j \\ a_{ij}=0\Leftrightarrow& r_i< c_j \end{aligned} aij=1aij=0ricjri<cj

我们从特殊情况思考入手: 我们考虑这样的情况: 如果第一列只有第一个是 1, 即 a 11 = 1 , a i 1 = 0 ( i ≥ 2 ) a_{11}=1,a_{i1}=0(i\ge 2) a11=1,ai1=0(i2), 那么可得

r 1 ≥   c 1 = 1 r i <   c 1 = 1 , i ≥ 2 \begin{aligned} r_1\ge\ & c_1=1 \\ r_i<\ & c_1=1,i\ge 2 \end{aligned} r1 ri< c1=1c1=1,i2

r i = 0 , i ≥ 2 r_i=0,i\ge 2 ri=0,i2, 也就是后七行全为 0, 即 a i j = 0 , i ≥ 2 a_{ij}=0, i\ge 2 aij=0,i2, 故 0 = r i < c j ( i ≥ 2 ) 0=r_i0=ri<cj(i2), 又现在每一列只有第一行可能不为 0, 所以 c j ≤ 1 c_j\le 1 cj1, 从而 c j = 1 c_j=1 cj=1, 即: 这个矩阵第一行全为 1, 后七行全为 0. 这个矩阵已然确定.

故, 所有第一列仅有一个 1 的矩阵都是确定的.

于是我们可以猜想: 所有合法的矩阵每行要么全 0, 要么全 1 .

我们设一个矩阵 a 11 = a 21 = ⋯ = a k 1 = 1 , a ( k + 1 ) 1 = ⋯ = a 81 = 0 a_{11}=a_{21}=\cdots=a_{k1}=1, a_{(k+1)1}=\cdots = a_{81}=0 a11=a21==ak1=1,a(k+1)1==a81=0

从而 r i ≥ c 1 = k ( 1 ≤ i ≤ k ) r_i\ge c_1=k(1\le i\le k) ric1=k(1ik), r i < c 1 = k ( k + 1 ≤ i ≤ 8 ) r_i< c_1=k(k+1\le i\le 8) ri<c1=k(k+1i8);

我们设存在 a p q = 1 a_{pq}=1 apq=1, 其中 p ≥ k + 1 , q ≥ 2 p\ge k+1, q\ge 2 pk+1,q2, 那么有 r p ≥ c q r_p\ge c_q rpcq, 又 r p < c 1 = k r_prp<c1=k, 故 c q < k c_qcq<k. 又由于 r i ≥ k > c q ( 1 ≤ i ≤ k ) r_i\ge k>c_q(1\le i\le k) rik>cq(1ik) 所以 a i q = 1 , ( 1 ≤ i ≤ k ) a_{iq}=1,(1\le i\le k) aiq=1,(1ik), 那么第 q q q 列的第 1 ⋯ k 1\cdots k 1k 行均为 1 , 有 c q ≥ k c_q\ge k cqk, 矛盾. 所以 a p q = 0 , p ≥ k + 1 , q ≥ 2 a_{pq}=0,p\ge k+1, q\ge 2 apq=0,pk+1,q2.

于是, 推得这个矩阵 k + 1 ⋯ 8 k+1\cdots 8 k+18 行均全为 0.

于是有 c j ≤ k c_j\le k cjk(至多前 k k k 行可能为 1), 所以 r i ≥ k ≥ c k ( 1 ≤ i ≤ k ) r_i\ge k\ge c_k(1\le i\le k) rikck(1ik), 所以 a i j = 1 , i ≤ k a_{ij}=1, i\le k aij=1,ik.

综上, 每一行要么全为 0, 要么全为 1.

考虑 k = 0 , k = 8 k=0,k=8 k=0,k=8 的边界情况, 前者不行, 后者可以.

最后的答案为 ∑ i = 1 8 ( 8 i ) = 2 8 − 1 = 255 \sum_{i=1}^8\binom{8}{i}=2^8-1=255 i=18(i8)=281=255.

总结 这种题目关键在于从特殊情况找一般思路, 大胆猜想, 小心求证.


3

题目 对任意 x ∈ N ∗ x\in \mathbb N^* xN, 分解质因数 x = p 1 k 1 p 2 k 2 ⋯ p n k n x=p_1^{k_1}p_2^{k_2}\cdots p_n^{k_n} x=p1k1p2k2pnkn, 若 k 1 + k 2 + ⋯ + k n k_1+k_2+\cdots + k_n k1+k2++kn 为偶数(包括 0 0 0), 则说 x x x 是平衡的, 否则说 x x x 是不平衡的. 现考虑 a , b ∈ N ∗ a,b\in \mathbb N^* a,bN, 定义函数 f ( x ) = ( x + a ) ( x + b ) f(x)=(x+a)(x+b) f(x)=(x+a)(x+b). 证明:
(1) 存在不相等的 a , b a,b a,b, 使得 f ( 1 ) , f ( 2 ) , ⋯   , f ( 99 ) f(1),f(2),\cdots, f(99) f(1),f(2),,f(99) 均为平衡的.
(2) 若对任意 x ∈ N ∗ x\in N^* xN, f ( x ) f(x) f(x) 都是平衡的, 则 a = b a=b a=b.

解答

(1)设 g ( x ) ≡ k 1 + k 2 + ⋯ + k n ( m o d 2 ) g(x)\equiv k_1+k_2+\cdots+k_n\pmod 2 g(x)k1+k2++kn(mod2), 容易发现 g ( a b ) ≡ g ( a ) + g ( b ) ( m o d 2 ) g(ab)\equiv g(a)+g(b)\pmod 2 g(ab)g(a)+g(b)(mod2).

x x x 是平衡的 ⇔ \Leftrightarrow g ( x ) ≡ 0 ( m o d 2 ) g(x)\equiv 0\pmod 2 g(x)0(mod2).

g ( f ( x ) ) ≡ g ( x + a ) + g ( x + b ) ≡ 0 ( m o d 2 ) g(f(x))\equiv g(x+a)+g(x+b)\equiv 0 \pmod 2 g(f(x))g(x+a)+g(x+b)0(mod2) x ∈ [ 1 , 99 ] ∩ N ∗ x\in[1,99]\cap \mathbb N^* x[1,99]N 成立.

g ( x + a ) ≡ g ( x + b ) g(x+a)\equiv g(x+b) g(x+a)g(x+b) x ∈ [ 1 , 99 ] ∩ N ∗ x\in [1,99]\cap \mathbb N^* x[1,99]N 成立.

v ⃗ ( a ) = [ g ( a + 1 ) , g ( a + 2 ) , g ( a + 99 ) ] T \vec v(a)=[g(a+1),g(a+2),g(a+99)]^T v (a)=[g(a+1),g(a+2),g(a+99)]T(其中 g g g 均取 0/1), 我们即求 v ⃗ ( a ) = v ⃗ ( b ) \vec v(a)=\vec v(b) v (a)=v (b) a ≠ b a\ne b a=b.

由于不同的 v ⃗ ( a ) \vec v(a) v (a) 至多只有 2 99 2^{99} 299 种, 而 a ∈ N ∗ a\in \mathbb N^* aN, 所以一定存在 a ≠ b , v ⃗ ( a ) = v ⃗ ( b ) a\ne b, \vec v(a)=\vec v(b) a=b,v (a)=v (b).

(2)原条件等价于 g ( f ( x ) ) ≡ g ( x + a ) + g ( x + b ) ≡ 0 ( m o d 2 ) g(f(x))\equiv g(x+a)+g(x+b)\equiv 0\pmod 2 g(f(x))g(x+a)+g(x+b)0(mod2), 即 g ( x + a ) ≡ g ( x + b ) ( m o d 2 ) g(x+a)\equiv g(x+b)\pmod 2 g(x+a)g(x+b)(mod2) x ∈ N ∗ x\in \mathbb N^* xN 恒成立.

用反证法. 设 a ≠ b a\ne b a=b, 不失一般性, 设 a < b aa<b. 由于 g ( x + a ) ≡ g ( x + b ) ( m o d 2 ) g(x+a)\equiv g(x+b)\pmod 2 g(x+a)g(x+b)(mod2), 即当 x ≥ x 0 = a + 1 x\ge x_0=a+1 xx0=a+1 时, g ( x ) g(x) g(x) 在模 2 2 2 意义下有循环节 l = b − a l = b-a l=ba, 或者说 g ( x ) ≡ g ( x + l ) ( m o d 2 ) g(x)\equiv g(x+l)\pmod 2 g(x)g(x+l)(mod2) x ≥ x 0 x\ge x_0 xx0 恒成立.

p > q > ⌈ x 0 l ⌉ p>q>\left\lceil\dfrac{x_0}{l}\right\rceil p>q>lx0 g ( p ) ≢ g ( q ) ( m o d 2 ) g(p)\not\equiv g(q)\pmod 2 g(p)g(q)(mod2). 这样的 p , q p,q p,q 是显然可以找到的. 那么 p l > q l > x 0 pl>ql>x_0 pl>ql>x0. 又 p l − q l = ( p − q ) l pl-ql=(p-q)l plql=(pq)l, 根据循环, 有 g ( p l ) ≡ g ( q l ) ( m o d 2 ) g(pl)\equiv g(ql)\pmod 2 g(pl)g(ql)(mod2), 即 g ( p ) + g ( l ) ≡ g ( q ) + g ( l ) g(p)+g(l)\equiv g(q)+g(l) g(p)+g(l)g(q)+g(l), 即 g ( p ) ≡ g ( q ) g(p)\equiv g(q) g(p)g(q), 矛盾. 所以假设不成立.

所以 a = b a=b a=b.

思路 我一开始看到这个“平衡”的定义, 一下先想到了积性函数. 仔细一看, 虽然并非积性函数, 但这样定义 g g g 简化了题意, 后面的步骤也随之变得清晰. (1)使用类似于鸽巢原理的思想, (2)则需要花功夫寻找反例, 不过还是挺好构造的.


4

题目 假设正整数 N ≥ 4 N\ge 4 N4. 某游戏有 2 N 2N 2N 个参与者( N N N 个人类和 N N N 个机器人)围成一圈. 定义两个机器人之间的朋友关系:
(1) 若两机器人之间只有不超过 1 1 1 个参与者, 则这两机器人为朋友;
(2) 若两机器人之间恰有 2 2 2 个参与者, 且这 2 2 2 个参与者至少有 1 1 1 个是人类, 则这两机器人为朋友;
(3) 除了上述两种情况以外, 任意两个机器人都不是朋友.
求证: 一定能找到 N N N 对机器人, 彼此之间为朋友.

解答 我们把机器人用 1 表示, 人类用 0 表示. 断环成链, 编号为 0 , 1 , ⋯   , 2 N − 1 0, 1, \cdots, 2N-1 0,1,,2N1. 设机器人的位置分别是 p 1 , p 2 , ⋯ p N , ( 0 ≤ p i < 2 N ) p_1, p_2, \cdots p_N,(0\le p_i<2N) p1,p2,pN,(0pi<2N). 进行差分, 设 x 1 ≡ p 1 − p N , x 2 ≡ p 2 − p 1 , x 3 ≡ p 3 − p 2 , … , x N ≡ p N − p N − 1 x_1\equiv p_1-p_N, x_2\equiv p_2-p_1, x_3\equiv p_3-p_2,\dots, x_N\equiv p_N-p_{N-1} x1p1pN,x2p2p1,x3p3p2,,xNpNpN1(都在模 2 N 2N 2N 意义下进行运算, 取最小正值). 那么, 容易得到 x 1 + x 2 + ⋯ + x N = 2 N x_1+x_2+\cdots+x_N=2N x1+x2++xN=2N.

转化原题意的“计分规则”, 可以得到:

  • 如果一个 x i ∈ { 1 , 2 , 3 } x_i\in\{1, 2, 3\} xi{1,2,3}, 那么得一分;
  • 如果相邻两个 x i , x i + 1 x_i,x_{i+1} xi,xi+1(当然, 认为 x 1 x_1 x1 x N x_N xN 相邻)之和 ≤ 3 \le 3 3(也就是 ( 1 , 1 ) , ( 1 , 2 ) , ( 2 , 1 ) (1, 1), (1, 2), (2, 1) (1,1),(1,2),(2,1), 那么奖励一分.

如果任意 1 ≤ i ≤ N 1\le i\le N 1iN, 均有 x i ≤ 4 x_i\le 4 xi4, 那么我们称这个数列具有性质 P P P.

子结论:如果对于性质 P P P 的情形命题均成立, 那么对于所有命题都成立.

证明:这个是容易理解的, 我们要让某个 x i ≥ 5 x_i\ge 5 xi5, 就必须让它在 x i = 4 x_i=4 xi=4 的基础上从其它的 x j x_j xj 处拿走一些值. 然而这些 x j x_j xj 减小只可能让答案更大(或者不变).

所以, 我们只要对满足性质 P P P 的命题进行证明即可.

x 1 , x 2 ⋯   , x N x_1,x_2\cdots, x_N x1,x2,xN 中, 恰有 t t t 个满足 x t = 4 x_t=4 xt=4, 其它均满足 x i ≤ 3 x_i\le 3 xi3. 设剩下这些依次为 x p 1 , x p 2 , ⋯   , x p N − t x_{p_1},x_{p_2}, \cdots, x_{p_{N-t}} xp1,xp2,,xpNt, 这里可以得分为 N − t N-t Nt. 那么有 x p 1 + x p 2 + ⋯ + x p N − t = 2 N − 4 t x_{p_1}+x_{p_2}+\cdots+x_{p_{N-t}}=2N-4t xp1+xp2++xpNt=2N4t. 设剩下这 N − t N-t Nt 个数中有 k k k x i = 3 x_i=3 xi=3, 其它均 ≤ 2 \le 2 2, 那么 3 k + ( N − t − k ) ≤ 2 N − 4 t 3k+(N-t-k)\le 2N-4t 3k+(Ntk)2N4t, 得 k ≤ N − 3 t 2 k\le \dfrac{N-3t}{2} k2N3t, 剩下的 x i = 1 , 2 x_i=1, 2 xi=1,2 的个数为 N − t − k N-t-k Ntk. 考虑到剩下的这些 x i = 1 , 2 x_i=1, 2 xi=1,2 之间可能插入至多 t + k t+k t+k x i ≥ 3 x_i\ge 3 xi3 的数, 所以这部分有奖励分 N − t − k − t − k = N − 2 t − 2 k ≥ t N-t-k-t-k=N-2t-2k\ge t Ntktk=N2t2kt. 从而, 总分 ≥ N − t + t = N \ge N-t+t=N Nt+t=N. 证毕.

思路 这道题一看过去, 很难处理:因为加分的因素实在太多, 但是, 差分后就可以比较清晰地表述题意, 也就成功了一半,

你可能感兴趣的:(数学,NJU,数学,数论,线性代数)