【POJ No. 3253】 围栏修复 Fence Repair

news2024/10/7 16:25:14

【POJ No. 3253】 围栏修复 Fence Repair

北大OJ 题目地址

在这里插入图片描述

这道题其实我们 之前就做过了
https://blog.csdn.net/weixin_44226181/article/details/127064923
在这里插入图片描述
当时我们 是在学习哈夫曼树

【题意】

约翰想修牧场周围的篱笆,需要N 块(1≤N ≤20000)木板,每块木板的长度都为Li (1≤Li ≤50000,整数)米。他购买了一块足够长的木板(长度为Li 的总和,i =1, 2,…, N ),以便得到N 块木板,切割时木屑损失的长度不计。唐向约翰收取切割费用,切割一块木板的费用与其长度相同,切割21米的木板需要21美分。唐让约翰决定切割木板的顺序和位置。约翰知道以不同的顺序切割木板,将会产生不同的费用。

请帮助约翰确定他得到N 块木板的最低花费。

【输入输出】

输入:

第1行包含整数N ,表示木板的数量。第2…N +1行,每行都包含一个所需木板的长度Li 。

输出:

一个整数,即进行N -1次切割的最低花费。

【样例】

在这里插入图片描述

【思路分析】

这道题类似哈夫曼树的构建方法,每次都选择两个最小的合并,直到合并为一棵树。每次合并的结果就是切割的费用。

【算法设计】

使用优先队列(最小值优先),每次都弹出两个最小值t 1 、t 2 ,=t 1 +t 2 ,sum+=t ,将t 入队,继续,直到队空。sum为所需花费。

【算法实现】

定义一个优先队列(最小值优先),输入元素入队。若队中只有一个元素,则直接累加输出即可。若队中多于一个元素,则每次都取两个最小值,累加和值,并将和值入队。

#include<iostream>
#include<cstdio>
#include<queue>

using namespace std;

int main(){
	
	long long sum;
	int n,t,t1,t2;
	while(cin>>n){
		priority_queue<int,vector<int>,greater<int> >q;
		for(int i=0;i<n;i++){
			cin >> t;//scanf("%d",&t);
			q.push(t);
		}
		sum=0;
		if(q.size()==1){
			t1=q.top();
			sum+=t1;
			q.pop();
		}
		while(q.size()>1){
			t1=q.top();
			q.pop();
			t2=q.top();
			q.pop();
			t=t1+t2;
			sum+=t;
			q.push(t);
		}
		cout << sum << endl;
	}
	
	return 0;
}


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19853.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CMake中if的使用

CMake中的if命令用于有条件地执行一组命令&#xff0c;其格式如下&#xff1a; if(<condition>)<commands> elseif(<condition>) # optional block, can be repeated<commands> else() # optional block<commands> endif() 根据Co…

HTML5期末大作业:旅游网页设计与实现——旅游风景区网站HTML+CSS (1)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 游景点介绍 | 旅游风景区 | 家乡介绍 | 等网站的设计与制作 | HTML期末大学生网页设计作业&#xff0c;Web大学生网页 HTML&#xff1a;结构 CSS&…

【项目实战:核酸检测平台】第一章 逆向工程

引言 准备做个项目实战系列&#xff0c;选一些比较有代表性&#xff0c;难度适中、规模合适的项目&#xff0c;从不同的角度&#xff0c;不同的深度去解析。很多初学者都抱怨没有实战项目&#xff0c;而学校/机构里大量用烂的学生管理、图书管理、电子商城等项目实在没有什么新…

LeetCode--230. 二叉搜索树中第K小的元素(C++描述)

// Source :https://leetcode.cn/problems/kth-smallest-element-in-a-bst/ // Date : 2022-11-19 /************************************************************************************** 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计…

Nginx 快速入门

一、简述 1.1 介绍 传统的 Web 服务器&#xff0c;每个客户端连接作为一个单独的进程或线程处理&#xff0c;需在切换任务时将 CPU 切换到新的任务并创建一个新的运行时上下文&#xff0c;消耗额外的内存和 CPU 时间&#xff0c;当并发请求增加时&#xff0c;服务器响应变慢&…

修改xml文件

一、前言 本节是修改xml;同样方法也可修改arxml文件&#xff1b;主要使用LET.Element创建节点&#xff1b; 二、知识点 1、专门用于格式化处理xml文件使其具有层级分明的缩进函数 #专门用于格式化处理xml文件使其具有层级分明的缩进 def indent( elem, level0): i "\n&…

基于51单片机的全自动智能洗衣机控制系统Proteus仿真

资料编号&#xff1a;108 下面是相关功能视频演示&#xff1a; 108-基于51单片机的全自动智能洗衣机控制系统Proteus仿真&#xff08;仿真源码全套资料&#xff09;设计功能&#xff1a; 1、对水温实时显示 2、显示滚筒转速 3、显示运行倒计时 4、能通过按钮分别设置洗涤时间…

一文带你深入理解【Java基础】· 常用类(上)字符串相关类

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

[附源码]java毕业设计社区私家车位共享收费系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

基于51单片机的八路电压表采集Proteus仿真

资料编号&#xff1a;110 下面是相关功能视频演示&#xff1a; 110-基于51单片机的八路电压表采集Proteus仿真&#xff08;源码仿真原理图全套资料&#xff09;功能如下&#xff1a; 利用单片机及其外围器件&#xff08;A/D转换器等&#xff09;实现一款简易电压表&#xff0…

(免费分享)基于springboot医药进销存系统

源码获取&#xff1a;关注文末gongzhonghao&#xff0c;输入014领取下载链接 开发工具&#xff1a;IDEA,数据库mysql 技术&#xff1a;springbootmybatis 系统主要分两个角色&#xff0c;客户和员工 package cn.tedu.drug.controller;import java.io…

【Pytorch with fastai】第 18 章 :使用 CAM 进行 CNN 解释

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

Design a Facebook NewsFeed

title: Notes of System Design No.06 — Design a Facebook’s Newsfeed description: Design a Facebook’s Newsfeed ’ date: 2022-05-13 18:01:58 tags: 系统设计 categories: 系统设计 00. What is News Feed? 01.Functional Requirement 02. Non-Functional Requireme…

面试刷题---计算机网络部分(一)

1 请描述 TCP/IP 协议中主机与主机之间通信的三要素 答&#xff1a; IP 地址&#xff08;IP address&#xff09; 子网掩码&#xff08;subnet mask&#xff09; IP 路由&#xff08;IP router&#xff09; 扩展&#xff1a; TCP/IP定义&#xff1a;TCP/IP是基于TCP和IP这两个…

iHRM 人力资源管理系统_第11章_刷脸登录

iHRM 人力资源管理系统_第11章_刷脸登录 文章目录iHRM 人力资源管理系统_第11章_刷脸登录第11章 刷脸登录1 浅谈人工智能1.1 人工智能的概述1.2 人工智能的应用领域1.3 基于人工智能的刷脸登录介绍2 百度云AI概述2.1 概述2.2 百度云AI的开发步骤2.3 百度云AI的注册与认证3 百度…

web大作业 静态网页(地下城与勇士 10页 带视频)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 游戏官网 | 游戏网站 | 电竞游戏 | 游戏介绍 | 等网站的设计与制作 | HTML期末大学生网页设计作业&#xff0c;Web大学生网页 HTML&#xff1a;结构 …

开源免费的对象存储Minio

什么是Minio&#xff1f; Minio是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口&#xff0c;非常适合存储大容量、非结构化的数据。例如&#xff0c;图片、视频、日志文件、备份数据和容器/虚拟机镜像等&#xff0c;而一个对象文件可以是…

机器学习:卷积神经网络

卷积神经网络卷积神经网络的结构及原理卷积层池化层激活函数全连接层反馈运算使用MNIST数据集进行代码解析数据介绍实现流程代码实现卷积神经网络的结构及原理 卷积层 卷积运算一个重要的特点就是&#xff1a;通过卷积运算&#xff0c;可以使原信号特征增强&#xff0c;并且降…

服务器常用的异常及性能排查

服务器常用的异常及性能排查 使用 top 命令查看性能指标 top 命令使用详细介绍&#xff1a;传送门 查看Tasks total 进程数 正常我们在使用过程中对每天的一个进程数大概是有一个谱的&#xff0c;比如正常就是1百多个&#xff0c;突然暴增几百&#xff0c;那就很明显这里有…

计算机网络:运输层

运输层 运输层主要解决了应用进程之间的通信&#xff0c;称之为端到端协议 1.运输层概述 计算机网-------络体系结构的角度 AP:应用进程之间的简称 2. 运输层端口号、复用与分用的概念 2.1 端口号 2.2 发送方的复用&#xff08;multiplexing&#xff09;和接收方的分用&…