题目大意
定义两个长度为 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 1−n正序,第二列 n + 1 − 2 n n+1-2n n+1−2n倒序,……,直到排满矩阵。
我们抱着试一试的心态交了上去,发现离奇的过了全部的数据点。那么这是为什么呢?
正确性证明
由于我们的差异值具有方向,所以我们要从上往下计算一次差异值,再反方向计算一次。
我们先考虑 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...n2n2n−12n−2...n+12n+12n+22n+3...3n...............n(n−1)+1n(n−1)+2n(n−1)+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+...+(n−1)+(n−1)=2n2−1
我们再考虑从下往上比,按照同样的方式推出差异值为
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+...+(n−1)+(n−1)+n=2n2+1
n 2 + 1 2 > n 2 − 1 2 \frac{n^2+1}{2}>\frac{n^2-1}{2} 2n2+1>2n2−1
所以任意两行间最小差异值的最大为 n 2 − 1 2 \frac{n^2-1}{2} 2n2−1
我们再考虑 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...n2n2n−12n−2...n+12n+12n+22n+3...3n...............n2n2−1n2−2...n(n−1)+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+...+(n−2)+(n−2)+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+...+(n−1)+(n−1)=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} (n2−1)+(n2−2)+...+1=2n4−n2
一共有 n 2 − n n^2-n n2−n行进行了比较,所以最小差异值 = n 4 − n 2 2 ( n 2 − n ) =\frac{n^4-n^2}{2(n^2-n)} =2(n2−n)n4−n2
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(n2−n)n4−n2≤2(n2−1)n4−n2=⌊2n2⌋
即当 n n n为奇数时最小差异值最大为 n 2 − 1 2 \frac{n^2-1}{2} 2n2−1,当 n n n为偶数时最小差异值最大为 n 2 2 \frac{n^2}{2} 2n2。
证毕。