【构造好题】CF1236C LAB

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/wljoi/article/details/102689170

题目大意

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

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

解析

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

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

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

2   3 \qquad\qquad\qquad2\space3

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

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

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

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

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

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

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

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

正确性证明

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

我们先考虑 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}

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

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

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}

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

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}

n 2 + 1 2 > n 2 1 2 \frac{n^2+1}{2}>\frac{n^2-1}{2}

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

我们再考虑 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}

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

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}

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

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

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

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

( 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}

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

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

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

证毕。

猜你喜欢

转载自blog.csdn.net/wljoi/article/details/102689170