CF1280E Kirchhoff's Current Loss
题意
做法
考虑一个子电路图\(G\),设得到有效电阻为\(x\),费用为\(f_G(x)\),通过归纳易得\(f_G(x)\)是关于\(x\)的一个一次函数,即\(f_G(x)=k_Gx\)
考虑电路图\(G\)的若干个子电路图\(G_1,G_2,...,G_n\)
- 串联:设子电路图的系数分别为\(k_{G_1}\le k_{G_2}\le ...\le k_{G_n}\),之间把\(x\)传到\(G_1\)就行了
故\(k_G=k_{G_1}\) - 并联:有\(\frac{1}{x}=\sum\limits_{i=1}^n \frac{1}{x_i}\)
我们用柯西不等式来求\(k_G\):
\(f_G(x)=x(\sum\limits_{i=1}^n \frac{1}{x_i} )(\sum\limits_{i=1}^n k_{G_i}x_i)\ge x(\sum\limits_{i=1}^n \sqrt \frac{1}{x_i}\sqrt {k_{G_i}x_i})^2=x(\sum\limits_{i=1}^n \sqrt {k_{G_i}})^2\)
故\(k_{G_i}=(\sum\limits_{i=1}^n \sqrt {k_{G_i}})^2\)
根据柯西不等式,取等号的充要条件是:存在\(\lambda\in\mathbb{R},\sqrt {k_{G_i}x_i}=\frac{\lambda}{\sqrt{x_i}}\)
为了递推到\(x_i\),我们需要不用到\(x_i\)得到\(\lambda\):
\(\frac{1}{x_i}=\frac{\sqrt{k_{G_i}}}{\lambda},\sum\limits_{i=1}^n \frac{1}{x_i}=\frac{\sum\limits_{i=1}^n \sqrt{k_{G_i}}}{\lambda},x\sum\limits_{i=1}^n \frac{1}{x_i}=x\frac{\sum\limits_{i=1}^n \sqrt{k_{G_i}}}{\lambda},1=x\frac{\sum\limits_{i=1}^n \sqrt{k_{G_i}}}{\lambda}\)
故\(\lambda=x\sum\limits_{i=1}^n \sqrt{k_{G_i}}\)
当然目前为止我们都是用实数递推的,但递推底层(单电阻)为\(k=1\),根据归纳容易推得上述根号下的开完根号都为整数
所以不需要考虑实数