卧薪尝胆,厚积薄发。
简单题
Date: Thu Dec 13 21:46:19 CST 2018 In Category: NoCategory

Description:

加入直线,删除直线,求一个点到平面上所有直线距离平方和最小。
$1\leqslant n\leqslant 120000$

Solution:

列式子就是: $$ \begin{align} f(x,y)&=\sum_{i=1}^n\frac{(A_ix+B_iy+C_i)^2}{A_i^2+B_i^2}\\ &=\sum_{i=1}^n\frac{A_i^2x^2+B_i^2y^2+C_i^2+2A_iB_ixy+2A_iC_ix+2B_iC_iy}{A_i^2+B_i^2} \end{align} $$ 于是对 $x$ 和 $y$ 分别求偏导就是: $$ f'(x)=\sum_{i=1}^n\frac{2A_i^2x+2A_i(B_iy+C_i)}{A_2^2+B_2^2}=0\\ f'(y)=\sum_{i=1}^n\frac{2B_i^2y+2B_i(A_ix+C_i)}{A_2^2+B_2^2}=0\\ \sum_{i=1}^n\frac{A_i^2}{A_i^2+B_i^2}x+\sum_{i=1}^n\frac{A_iB_i}{A_i^2+B_i^2}y+\sum_{i=1}^n\frac{A_iC_i}{A_i^2+B_i^2}=0\\ \sum_{i=1}^n\frac{B_i^2}{A_i^2+B_i^2}y+\sum_{i=1}^n\frac{A_iB_i}{A_i^2+B_i^2}x+\sum_{i=1}^n\frac{B_iC_i}{A_i^2+B_i^2}=0 $$ 于是插入和删除都可以维护一下这三个值,然后解出 $x$ 和 $y$ 即可。线段树分治都不用。
注意各种情况的分类讨论。

Code:



Copyright © 2020 wjh15101051
ღゝ◡╹)ノ♡