PKU 1862 Stripies

来源:互联网 发布:单片机生产厂家 编辑:程序博客网 时间:2024/04/27 13:59

通过这道题学会了简单的使用STL中的优先级队列priority_queue。

题目大意:给定一个包含若干个数的集合,每次抽出两个数a和b,通过公式2*sqrt(a*b)得到的新值放回集合。直到集合中剩余1个元素。求这个“剩余元素”的最小值。

思路:通过简单的推导,容易知道:若想使得“剩余元素”值最小,每次抽出的两个数a和b值要最大。所以想到了“大根堆”这种数据结构。

PS:本题可以直接排序,顺序取元素,不放回。因为要放回的数是剩下的数中的最大值。代码不提供了,因为耗时竟然比这个更多。很神奇……

 

原创粉丝点击