题目大意
定义两个长度为nnn的数列A,BA,BA,B的差异值为:在AAA中任取一个数uuu,在BBB中任取一个数vvv,使得u>vu>vu>v的数对对数。
现在有n2n^2n2个数字,编号为111~n2n^2n2,将这些数字放在一个n×nn\times nn×n的矩阵里,使任意两行间的差异值最小。
解析
我们考虑nnn很小的情况:
1.n=1 11.n=1\qquad\space\space\space11.n=1 1
2.n=2 1 42.n=2\qquad\space\space\space1\space 42.n=2 1 4
2 3\qquad\qquad\qquad2\space32 3
3.n=33.n=33.n=3,由样例知差异值最小为444,所以我们可以构造出下面的矩阵,使其差异值为444:
1 6 7\qquad\qquad\qquad1\space6\space71 6 7
2 5 8\qquad\qquad\qquad2\space5\space82 5 8
3 4 9\qquad\qquad\qquad3\space4\space93 4 9
观察一下上面的矩阵,我们可以发现一个规律:
对于一个边长为nnn的矩阵,我们可以这样构造:
第一列1−n1-n1−n正序,第二列n+1−2nn+1-2nn+1−2n倒序,……,直到排满矩阵。
我们抱着试一试的心态交了上去,发现离奇的过了全部的数据点。那么这是为什么呢?
正确性证明
由于我们的差异值具有方向,所以我们要从上往下计算一次差异值,再反方向计算一次。
我们先考虑nnn为奇数的情况。
那么我们的矩阵为:
[12n2n+1...n(n−1)+122n−12n+2...n(n−1)+232n−22n+3...n(n−1)+3...............nn+13n...n2] \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)=n2−120+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=n2+121+1+3+3+...+(n-1)+(n-1)+n=\frac{n^2+1}{2}1+1+3+3+...+(n−1)+(n−1)+n=2n2+1
n2+12>n2−12\frac{n^2+1}{2}>\frac{n^2-1}{2}2n2+1>2n2−1
所以任意两行间最小差异值的最大为n2−12\frac{n^2-1}{2}2n2−1
我们再考虑nnn为偶数的情况。
那么我们的矩阵为:
[12n2n+1...n222n−12n+2...n2−132n−22n+3...n2−2...............nn+13n...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=n220+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)=n221+1+3+3+...+(n-1)+(n-1)=\frac{n^2}{2}1+1+3+3+...+(n−1)+(n−1)=2n2
任意两行间最小差异值最大为n22\frac{n^2}{2}2n2
因为有n2n^2n2个数,所以总差异值最大为
(n2−1)+(n2−2)+...+1=n4−n22(n^2-1)+(n^2-2)+...+1=\frac{n^4-n^2}{2}(n2−1)+(n2−2)+...+1=2n4−n2
一共有n2−nn^2-nn2−n行进行了比较,所以最小差异值=n4−n22(n2−n)=\frac{n^4-n^2}{2(n^2-n)}=2(n2−n)n4−n2
n4−n22(n2−n)≤n4−n22(n2−1)=⌊n22⌋\frac{n^4-n^2}{2(n^2-n)}\le\frac{n^4-n^2}{2(n^2-1)}=\lfloor\frac{n^2}{2}\rfloor2(n2−n)n4−n2≤2(n2−1)n4−n2=⌊2n2⌋
即当nnn为奇数时最小差异值最大为n2−12\frac{n^2-1}{2}2n2−1,当nnn为偶数时最小差异值最大为n22\frac{n^2}{2}2n2。
证毕。

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

1585

被折叠的 条评论
为什么被折叠?



