#include
#include
using namespace std;
#define read(x) scanf("%lld",&x)
int main()
{
priority_queue,greater >q;
long long n,temp,sum;
read(n);
if(n==1)
{
read(temp);
printf("%lld\n",temp);
...
分类:
其他好文 时间:
2014-06-14 10:34:12
阅读次数:
223
给了你N个木棒,求把他们组装成一根需要的最小花费,每次只能选两根组装在一起,需要的花费为两个木棒之和,
以前遇到过把一整根切开的,那个是DP,这个则有些类似,可是大胆的猜测了一下,直接每次选取所有木棒中最短的两根,这样就可以了,那么贪心是适用的,但是数量很多,而且两根最短的组装好了得插回去,这样不可能每次都排序吧,
这题首先优先队列肯定是可以做的,
最小堆也是可以的,每次都选出堆里的...
分类:
其他好文 时间:
2014-05-07 12:44:17
阅读次数:
337