缘起
日常浪费生命 poj 1862 Stripies
分析
1 | 两个物体m1、m2相撞后会变成一个物体,这个物体的重量会变成2*sqrt(m1*m2)。有n个物体,假设只会发生两两相 |
注意基本的数学不等式
m1+m2>=2*sqrt(m1*m2)
而且左边-右边=(sqrt(m1)-sqrt(m2))^2
所以m1和m2差距越大, 缩水的重量就越大. 所以每次挑两个重量最大的物体杂交, 直至最后剩下一条光棍. 而求最大这一点可以使用堆进行高效的维护.
1 | //#include "stdafx.h" |
ac情况
Status | Accepted |
---|---|
Memory | 156kB |
Length | 611 |
Lang | C++ |
Submitted | 2019-08-26 07:18:22 |
Shared | |
RemoteRunId | 20801159 |
Powered By Valine
v1.5.2
v1.5.2