题目大意
解题思路
一个向量 v 1 v_1 v1从小到大排序,另一个向量 v 2 v_2 v2从大到小排序,点积最小。证明如下:
- (1): 由于两个向量的元素位置是任意变换的,不妨令第一个向量元素从小到大排序。
- (2): 在两个元素的情况下,
(
x
1
,
x
2
)
(x_1, x_2)
(x1,x2),
(
y
1
,
y
2
)
(y_1, y_2)
(y1,y2)。假定
y
1
<
=
y
2
y_1 <= y_2
y1<=y2,此时有两种结果
x
1
y
1
+
x
2
y
2
x_1y_1+x_2y_2
x1y1+x2y2.与
x
1
y
2
+
x
2
y
1
x_1y_2+x_2y_1
x1y2+x2y1则:
x 1 y 1 + x 2 y 2 − x 1 y 2 − x 2 y 1 = x 1 ( y 1 − y 2 ) − x 2 ( y 1 − y 2 ) = ( x 1 − x 2 ) ( y 1 − y 2 ) > = 0 x_1y_1+x_2y_2 - x_1y_2-x_2y_1 = x_1(y_1-y_2)-x_2(y_1-y_2) = (x_1-x_2)(y_1-y_2)>=0 x1y1+x2y2−x1y2−x2y1=x1(y1−y2)−x2(y1−y2)=(x1−x2)(y1−y2)>=0
由上式可知,当 y 1 < y 2 y_1<y_2 y1<y2则: x 1 y 1 + x 2 y 2 > = x 1 y 2 + x 2 y 1 x_1y_1+x_2y_2 >= x_1y_2+x_2y_1 x1y1+x2y2>=x1y2+x2y1。 - (3): 若多个元素,并且 v 2 v_2 v2不按降序, 则交换任意一对不满足降序的元素,最后得到的点积都更小。一直交换,最终得到降序的 v 2 v_2 v2
代码
- 略