【构造好题】CF1236C LAB

探讨了如何构造一个n×n的矩阵,使任意两行间的差异值最小,通过构造特定的矩阵模式,证明了当n为奇数时最小差异值最大为(n^2-1)/2,当n为偶数时最小差异值最大为n^2/2。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目大意

定义两个长度为 n n n的数列 A , B A,B A,B的差异值为:在 A A A中任取一个数 u u u,在 B B B中任取一个数 v v v,使得 u > v u>v u>v的数对对数。

现在有 n 2 n^2 n2个数字,编号为 1 1 1~ n 2 n^2 n2,将这些数字放在一个 n × n n\times n n×n的矩阵里,使任意两行间的差异值最小。

解析

我们考虑 n n n很小的情况:

1. n = 1     1 1.n=1\qquad\space\space\space1 1.n=1   1

2. n = 2     1   4 2.n=2\qquad\space\space\space1\space 4 2.n=2   1 4

2   3 \qquad\qquad\qquad2\space3 2 3

3. n = 3 3.n=3 3.n=3,由样例知差异值最小为 4 4 4,所以我们可以构造出下面的矩阵,使其差异值为 4 4 4

1   6   7 \qquad\qquad\qquad1\space6\space7 1 6 7

2   5   8 \qquad\qquad\qquad2\space5\space8 2 5 8

3   4   9 \qquad\qquad\qquad3\space4\space9 3 4 9

观察一下上面的矩阵,我们可以发现一个规律:

对于一个边长为 n n n的矩阵,我们可以这样构造:

第一列 1 − n 1-n 1n正序,第二列 n + 1 − 2 n n+1-2n n+12n倒序,……,直到排满矩阵。

我们抱着试一试的心态交了上去,发现离奇的过了全部的数据点。那么这是为什么呢?

正确性证明

由于我们的差异值具有方向,所以我们要从上往下计算一次差异值,再反方向计算一次。

我们先考虑 n n n为奇数的情况。

那么我们的矩阵为:

[ 1 2 n 2 n + 1 . . . n ( n − 1 ) + 1 2 2 n − 1 2 n + 2 . . . n ( n − 1 ) + 2 3 2 n − 2 2 n + 3 . . . n ( n − 1 ) + 3 . . . . . . . . . . . . . . . n n + 1 3 n . . . n 2 ] \begin{bmatrix} 1 & 2n &2n+1 &...&n(n-1)+1\\\\ 2 & 2n-1&2n+2&...&n(n-1)+2\\\\ 3 & 2n-2&2n+3&...&n(n-1)+3\\\\ ...&...&...&...&...\\\\ n & n+1&3n&...&n^2 \end{bmatrix} 123...n2n2n12n2...n+12n+12n+22n+3...3n...............n(n1)+1n(n1)+2n(n1)+3...n2

对于上面的行和下面的行比较,我们观察到第奇数行的数从上往下递增,偶数行从上往下递减,左边的行的所有数都小于右边的行。

那么上下任意两行比较的差异值为

0 + 2 + 2 + 4 + 4 + . . . + ( n − 1 ) + ( n − 1 ) = n 2 − 1 2 0+2+2+4+4+...+(n-1)+(n-1)=\frac{n^2-1}{2} 0+2+2+4+4+...+(n1)+(n1)=2n21

我们再考虑从下往上比,按照同样的方式推出差异值为

1 + 1 + 3 + 3 + . . . + ( n − 1 ) + ( n − 1 ) + n = n 2 + 1 2 1+1+3+3+...+(n-1)+(n-1)+n=\frac{n^2+1}{2} 1+1+3+3+...+(n1)+(n1)+n=2n2+1

n 2 + 1 2 > n 2 − 1 2 \frac{n^2+1}{2}>\frac{n^2-1}{2} 2n2+1>2n21

所以任意两行间最小差异值的最大为 n 2 − 1 2 \frac{n^2-1}{2} 2n21

我们再考虑 n n n为偶数的情况。

那么我们的矩阵为:
[ 1 2 n 2 n + 1 . . . n 2 2 2 n − 1 2 n + 2 . . . n 2 − 1 3 2 n − 2 2 n + 3 . . . n 2 − 2 . . . . . . . . . . . . . . . n n + 1 3 n . . . n ( n − 1 ) + 1 ] \begin{bmatrix} 1 & 2n &2n+1 &...&n^2\\\\ 2 & 2n-1&2n+2&...&n^2-1\\\\ 3 & 2n-2&2n+3&...&n^2-2\\\\ ...&...&...&...&...\\\\ n & n+1&3n&...&n(n-1)+1 \end{bmatrix} 123...n2n2n12n2...n+12n+12n+22n+3...3n...............n2n21n22...n(n1)+1

从上往下比较,我们的差异值为

0 + 2 + 2 + 4 + 4 + . . . + ( n − 2 ) + ( n − 2 ) + n = n 2 2 0+2+2+4+4+...+(n-2)+(n-2)+n=\frac{n^2}{2} 0+2+2+4+4+...+(n2)+(n2)+n=2n2

从下往上比较,我们的差异值为

1 + 1 + 3 + 3 + . . . + ( n − 1 ) + ( n − 1 ) = n 2 2 1+1+3+3+...+(n-1)+(n-1)=\frac{n^2}{2} 1+1+3+3+...+(n1)+(n1)=2n2

任意两行间最小差异值最大为 n 2 2 \frac{n^2}{2} 2n2

因为有 n 2 n^2 n2个数,所以总差异值最大为

( n 2 − 1 ) + ( n 2 − 2 ) + . . . + 1 = n 4 − n 2 2 (n^2-1)+(n^2-2)+...+1=\frac{n^4-n^2}{2} (n21)+(n22)+...+1=2n4n2

一共有 n 2 − n n^2-n n2n行进行了比较,所以最小差异值 = n 4 − n 2 2 ( n 2 − n ) =\frac{n^4-n^2}{2(n^2-n)} =2(n2n)n4n2

n 4 − n 2 2 ( n 2 − n ) ≤ n 4 − n 2 2 ( n 2 − 1 ) = ⌊ n 2 2 ⌋ \frac{n^4-n^2}{2(n^2-n)}\le\frac{n^4-n^2}{2(n^2-1)}=\lfloor\frac{n^2}{2}\rfloor 2(n2n)n4n22(n21)n4n2=2n2

即当 n n n为奇数时最小差异值最大为 n 2 − 1 2 \frac{n^2-1}{2} 2n21,当 n n n为偶数时最小差异值最大为 n 2 2 \frac{n^2}{2} 2n2

证毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值