P1334 瑞瑞的木板
题目描述
瑞瑞想要亲自修复在他的一个小牧场周围的围栏。他测量栅栏并发现他需要N(1≤N≤20,000)根木板,每根的长度为整数Li(1≤Li≤50,000)。于是,他神奇地买了一根足够长的木板,长度为所需的N根木板的长度的总和,他决定将这根木板切成所需的N根木板。(瑞瑞在切割木板时不会产生木屑,不需考虑切割时损耗的长度)瑞瑞切割木板时使用的是一种特殊的方式,这种方式在将一根长度为x的模板切为两根时,需要消耗x个单位的能量。瑞瑞拥有无尽的能量,但现在提倡节约能量,所以作为榜样,他决定尽可能节约能量。显然,总共需要切割N-1次,问题是,每次应该怎么切呢?请编程计算最少需要消耗的能量总和。
输入输出格式
输入格式:
第一行: 整数N,表示所需木板的数量
第2到N+1行: 每行为一个整数,表示一块木板的长度
输出格式:
一个整数,表示最少需要消耗的能量总和
输入输出样例
3 8 5 8
34
说明
将长度为21的木板,第一次切割为长度为8和长度为13的,消耗21个单位的能量,第二次将长度为13的木板切割为长度为5和8的,消耗13个单位的能量,共消耗34个单位的能量,是消耗能量最小的方案。
小根堆
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<queue> 6 #define lli long long int 7 using namespace std; 8 void read(lli & n) 9 { 10 char c='+';lli x=0;lli flag=0; 11 while(c<'0'||c>'9') 12 { 13 c=getchar(); 14 if(c=='-')flag=1; 15 } 16 17 while(c>='0'&&c<='9') 18 x=x*10+c-48,c=getchar(); 19 if(flag==1)n=-x; 20 else n=x; 21 } 22 priority_queue<lli,vector<lli>,greater<lli> >q; 23 lli n,p; 24 lli ans; 25 int main() 26 { 27 read(n); 28 for(int i=1;i<=n;i++) 29 { 30 read(p); 31 q.push(p); 32 } 33 for(int i=1;i<=n-1;i++) 34 { 35 lli x=q.top(); 36 q.pop(); 37 lli y=q.top(); 38 q.pop(); 39 x=x+y; 40 ans+=x; 41 q.push(x); 42 } 43 cout<<ans; 44 return 0; 45 }
转载于:https://www.cnblogs.com/zwfymqz/p/7044603.html
P1334 瑞瑞的木板相关推荐
- 【u009】瑞瑞的木板
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 瑞瑞想要亲自修复在他的一个小牧场周围的围栏.他测量栅栏并发现他需要N(1≤N≤20,000)根木板,每 ...
- 洛谷P1333 瑞瑞的木棍(欧拉回路)
题目描述 瑞瑞有一堆的玩具木棍,每根木棍的两端分别被染上了某种颜色,现在他突然有了一个想法,想要把这些木棍连在一起拼成一条线,并且使得木棍与木棍相接触的两端颜色都是相同的,给出每根木棍两端的颜色,请问 ...
- [洛谷]P1334 瑞瑞的木板
反向考虑 考虑成用最小单位的那些木板合成一个长度为n的最小体 #include<bits/stdc++.h> using namespace std; #define int long ...
- 程序设计思维与实践 Week15 实验 D-瑞瑞爱上字符串
题目链接:D-瑞瑞爱上字符串 题目描述: 瑞瑞最近迷上了字符串,因此决定出一个字符串的题. 给定两个正整数 N.K,考虑所有由 N - 2 个 a 和 2 个 b 组成的字符串,要求输出其中字典序第 ...
- 堆——以洛谷p3378,p1334,p1628,p1878为例
堆 堆的五个基本操作: 1.在集合中插入一个数 heap[++size]=x ; up[size] 2.求集合当中的最小值 heap[1] 3.删除最小值 ...
- 2017-2018年度刷题记录
2018暑假刷题1: T1.CF6A Triangle (#模拟 -1.4) T2.CF59A Word(#模拟 -1.5) T3.[洛谷]P2772 寻找平面上的极大点(#贪心 -1.4) T4.[ ...
- 寒假训练八(优先队列)2020.02.14(7题)
寒假训练八(优先队列)id:530 Problem:A 买饭-优先队列 Description 林大食堂非常拥挤,得排队买饭,陈老师也是一样的! 有n个人在一个卖饭窗口前排队买饭,假如每个人买饭的时间 ...
- 第十五届全国大学生智能车全国总决赛获奖信息-华南赛区
第十五届全国大学生智能车竞赛 全国总决赛获奖信息 华南赛区 序号 学校 队伍 组别 奖项 姓名 类别 1 武汉大学 珞珈-DeepLoop AI电磁组 一等奖 朱俊宇 参赛学生 2 武汉大学 珞珈-D ...
- 配置Linux两节点SSH密钥信任
首先感谢兄弟"瑞瑞"提供资料 1. 生成两节点Oracle用户SSH密钥 Racnode1 [root@racnode1 ~]#su - oracle--------------- ...
最新文章
- 爬虫之手机APP抓包教程-亲测HTTP和HTTPS均可实现
- Python可视化应用实战-三万字长文(建议收藏)matplotlib可视化实例,实操有效
- html文字字号不改变,如何在不改变div大小的情况下更改HTML / css中的字体大小?...
- JUST技术:提升基于GPS轨迹的路网推测精确度
- php鼠标点击图片后换图片,鼠标滑过改变图片
- 如何绘制逻辑图 — 9.模型的分类
- 【100题】第十四题(数组中找两个数使其和等于输入数)
- zabbix第一篇:zabbix安装及使用
- Vue单文件项目自定义组件入门
- python 遍历内嵌tuple_python内置数据结构list、set、dict、tuple(一)
- 父shell和子shell
- 2B: 怎么把黑科技卖给顶级金融机构? | 甲子光年
- vim插件介绍(一)之Tabular
- 2022-2028全球姿势矫正器行业调研及趋势分析报告
- php判断字符串长度 strlen()与mb_strlen()函数
- android中常见对话框之一AlertDialog
- Elasticsearch升级1.5版本暴露jdk的bug
- Educational Codeforces Round 69 (Rated for Div. 2) D. Yet Another Subarray Problem(dp 最大子区间)
- HTML基础学习——定位
- VBA用字典实现分类汇总(一)
热门文章
- 【Python学习】 - sklearn - PCA降维相关
- 【牛客 - 330C】Applese 走迷宫(bfs)
- 【CodeForces-1041C】Coffee Break(贪心,STL,set二分维护,题意难,有坑,SJ题,构造)(知识点总结)
- php百度搜索框代码,基于jquery的仿百度搜索框效果代码_jquery
- python 列表转图结构_Python读取网络(图)边列表数据进而转化为邻接矩阵
- jquery工具箱旋转动画效果
- js正则表达式限制文本框只能输入数字,小数点,英文字母
- git/github使用完整教程(1)基础
- leetcode136 只出现一次的数字
- 计算一个人出生了多少天(炸窝)