题意:农夫要将板割成n块,长度分别为L1,L2,...Ln。每次切断木板的花费为这块板的长度,问最小花费。21 分为 5 8 8三部分。
 
思路:思考将n部分进行n-1次两两合成最终合成L长度和题目所求花费一致。贪心,按木板长度排序,每次取长度最小的两块木板,则答案最小。因为合成次数是固定不变的,尽量让小的部分进行多次合成,这样总花费最小。
 
#include<cstdio>
#include<queue>
using namespace std;
typedef long long ll;
priority_queue<int,vector<int>,greater<int> > que;
int main() {
int n,x;
while(~scanf("%d",&n)) {
while(!que.empty()) que.pop();
for(int i=;i<n;i++) {
scanf("%d",&x);
que.push(x);
}
int a,b;ll res=;
while(que.size()>) {
a=que.top();que.pop();
b=que.top();que.pop();
res+=a+b;
que.push(a+b);
}
printf("%lld\n",res);
}
return ;
}

POJ 3253 Fence Repair 贪心+优先队列的更多相关文章

  1. POJ 3253 Fence Repair (优先队列)

    POJ 3253 Fence Repair (优先队列) Farmer John wants to repair a small length of the fence around the past ...

  2. POJ 3253 Fence Repair (贪心)

    Fence Repair Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit ...

  3. POJ 3253 Fence Repair 贪心 优先级队列

    Fence Repair Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 77001   Accepted: 25185 De ...

  4. poj 3253 Fence Repair(优先队列+哈夫曼树)

    题目地址:POJ 3253 哈夫曼树的结构就是一个二叉树,每个父节点都是两个子节点的和. 这个题就是能够从子节点向根节点推. 每次选择两个最小的进行合并.将合并后的值继续加进优先队列中.直至还剩下一个 ...

  5. poj 3253 Fence Repair 贪心 最小堆 题解《挑战程序设计竞赛》

    地址 http://poj.org/problem?id=3253 题解 本题是<挑战程序设计>一书的例题 根据树中描述 所有切割的代价 可以形成一颗二叉树 而最后的代价总和是与子节点和深 ...

  6. POJ 3253 Fence Repair(优先队列,哈夫曼树,模拟)

    题目 //做哈夫曼树时,可以用优先队列(误?) //这道题教我们优先队列的一个用法:取前n个数(最大的或者最小的) //哈夫曼树 //64位 //超时->优先队列,,,, //这道题的优先队列用 ...

  7. POJ 3253 Fence Repair STL 优先队列

    这题做完后觉得很水,主要的想法就是逆过程思考,原题是截断,可以想成是拼装,一共有n根木棍,最后要拼成一根完整的,每两根小的拼成一根大的,拼成后的木棍长度就是费用,要求费用最少.显然的是一共会拼接n-1 ...

  8. poj 3253 Fence Repair 优先队列

    poj 3253 Fence Repair 优先队列 Description Farmer John wants to repair a small length of the fence aroun ...

  9. POJ 3253 Fence Repair(修篱笆)

    POJ 3253 Fence Repair(修篱笆) Time Limit: 2000MS   Memory Limit: 65536K [Description] [题目描述] Farmer Joh ...

随机推荐

  1. CBV流程

    django CBV 源码分析 FBV和CBV FBV(function base views) 就是在视图里使用函数处理请求. 在之前django的学习中,我们一直使用的是这种方式,所以不再赘述. ...

  2. pycharn设置git提交代码

    1.设置pycharm的git地址 2.设置git地址及本地路径 3.提交代码

  3. (int)()和int()强制类型转换

    (int)()这个是c语言的强制转换,众所知周 int(),这种理解靠谱点 Class A { A(int i){} } 调用int类型的构造函数然后转换的 其实都可以转换.

  4. java学习笔记——数据类型及类型转换

    数据类型分为: 1.引用类型(字符型); 2.基本数据类型(数值型); 以下为基本数据类型介绍(括号内的数字表示该类型所占据的字节数) a.整型 byte(8)   short(16)   int(3 ...

  5. hdu 4617 Weapon【异面直线距离——基础三维几何】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4617 Weapon Time Limit: 3000/1000 MS (Java/Others)     ...

  6. Java基础 - 函数与方法

    java 是一门面向对象编程,其它语言中的函数也就是java中的方法 方法的基本使用方法 package com.demo7; /* * 函数/方法 * * 定义格式: * 修饰符 返回值类型 方法名 ...

  7. 通过配置rinetd来实现ECS跳转访问非外网连接的mongodb

    跳转的原理通用,不单单针对mongo,其他需求应用也可以使用这种方式   生成环境中的mongodb迁移到了阿里云上的mongodb,由于机制的问题,mongodb不能直接被外网访问,故此采用的办法为 ...

  8. 如何用Python输出一个斐波那契Fibonacci数列

    a,b = 0, 1 while b<100: print (b), a, b = b, a+b

  9. python模块学习(三)

    logging模块 简单应用 import logging  logging.debug('debug message')  logging.info('info message')  logging ...

  10. 创建spring boot 项目所遇到的问题

    1.添加完MySQL和jdbc约束后,在配置文件内spring.datasource.driver-class-name=com.mysql.jdbc.Driver 报错,显示找不到驱动包,原因是: ...