博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Fence Repair(优先队列容器的应用)
阅读量:6073 次
发布时间:2019-06-20

本文共 1881 字,大约阅读时间需要 6 分钟。

Description

Farmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needs N (1 ≤ N ≤ 20,000) planks of wood, each having some integer length Li (1 ≤ Li ≤ 50,000) units. He then purchases a single long board just long enough to saw into the N planks (i.e., whose length is the sum of the lengths Li). FJ is ignoring the "kerf", the extra length lost to sawdust when a sawcut is made; you should ignore it, too.

FJ sadly realizes that he doesn't own a saw with which to cut the wood, so he mosies over to Farmer Don's Farm with this long board and politely asks if he may borrow a saw.

Farmer Don, a closet capitalist, doesn't lend FJ a saw but instead offers to charge Farmer John for each of the N-1 cuts in the plank. The charge to cut a piece of wood is exactly equal to its length. Cutting a plank of length 21 costs 21 cents.

Farmer Don then lets Farmer John decide the order and locations to cut the plank. Help Farmer John determine the minimum amount of money he can spend to create the N planks. FJ knows that he can cut the board in various different orders which will result in different charges since the resulting intermediate planks are of different lengths.

Input

Line 1: One integer  
N, the number of planks  
Lines 2..
N+1: Each line contains a single integer describing the length of a needed plank

Output

Line 1: One integer: the minimum amount of money he must spend to make  
N-1 cuts

Sample Input

3858

Sample Output

34

#include <iostream>

#include <queue>
using namespace std;
int main()
{
 
 int n;
 while(cin>>n)
 {priority_queue<int ,vector<int>,greater<int> >q;
 int i,x,y;
 for(i=0;i<n;i++){
  cin>>x;q.push(x);
 }
 
 long long  count=0 ;
 while(q.size()>1)
 {x=q.top();
 q.pop();
 y=q.top();
 q.pop();
 count+=(x+y);
 q.push(x+y);
 
 
 }printf("%lld\n",count);
 
 }
 return 0;
 
}

 

转载于:https://www.cnblogs.com/lengxia/p/4387807.html

你可能感兴趣的文章
Cocos2d-x CCEditBox 编辑框
查看>>
[转载] 中华典故故事(孙刚)——23 打破砂锅问到底
查看>>
Go方法
查看>>
ORA-01012: not logged on
查看>>
经验分享: 成功通过AWS Advanced Networking Specialty认证考试
查看>>
linux MySQL安装
查看>>
java 中文繁简体转换工具 opencc4j
查看>>
html本地数据库—存储功能
查看>>
Dapper丶DapperExtention,以及AbpDapper之间的关系,
查看>>
搞IT的同学们,你们在哪个等级__那些年发过的帖子
查看>>
Spring MVC常用注解说明
查看>>
Myeclipse优化配置
查看>>
spring security 入门(1)
查看>>
apache的bin目录下的apxs有什么作用? PHP模块加载运行方式
查看>>
并发容器学习——ConcurrentHashMap
查看>>
金融行业工作报告自动生成系统
查看>>
100元买一百只鸡的问题求解之一
查看>>
Android开发初涉遇到的问题(1)  SimpleAdapter
查看>>
记一次JavaWeb网站技术架构总结
查看>>
注入或获取spring上下文的几种方式
查看>>