Loading

贪心学习笔记

排序不等式

内容

设有两个长为 \(n\) 的单调不降的数列,分别为 \(A=(a_1,a_2,\cdots,a_n)\)\(B=(b_1,b_2,\cdots,b_n)\)\((p_1,p_2,\cdots,p_n)\) 是自然数 \(1\)\(n\) 的任意一个排列,则有:

\[\sum_{i=1}^n a_ib_{n-i+1}\le\sum_{i=1}^n a_ib_{p_i}\le\sum_{i=1}^n a_ib_i \]

简记:逆序和小于等于乱序和小于等于顺序和。

证明

\(x_i=\sum_{j=1}^i b_j\)\(y_i=\sum_{j=1}^i b_{p_j}\)\(z_i=\sum_{j=1}^i b_{n-j+1}\)

易得:当 \(i<n\) 时,\(x_i\le y_i\le z_i\)\(x_n=y_n=z_n\)

\(\because a_i-a_{i+1}\le 0\)

\(\therefore (a_i-a_{i+1})x_i\ge (a_i-a_{i+1})y_i\ge (a_i-a_{i+1})z_i\)

因为(展开即可推出):

\[a_nx_n+\sum_{i=1}^{n-1}(a_i-a_{i+1})x_i=\sum_{i=1}^na_ib_i \]

\[a_ny_n+\sum_{i=1}^{n-1}(a_i-a_{i+1})y_i=\sum_{i=1}^na_ib_{p_i} \]

\[a_nz_n+\sum_{i=1}^{n-1}(a_i-a_{i+1})z_i=\sum_{i=1}^na_ib_{n-i+1} \]

所以:

\[\sum_{i=1}^n a_ib_{n-i+1}\le\sum_{i=1}^n a_ib_{p_i}\le\sum_{i=1}^n a_ib_i \]

例题

P1966 NOIP2013 D1T2 火柴排队

因为:

\[\sum(a_i-b_i)^2=\sum a_i^2+\sum b_i^2-\sum a_ib_i \]

所以只要让 \(\sum a_ib_i\) 最大即可。

posted @ 2022-11-11 21:21  hihihi198  阅读(45)  评论(0)    收藏  举报