PATB 1070 绳结 (要点在于读题)

2023-10-21 05:30

本文主要是介绍PATB 1070 绳结 (要点在于读题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。

rope.jpg

给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。

输入格式:

每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (2≤N≤104);第 2 行给出 N 个正整数,即原始绳段的长度,数字间以空格分隔。所有整数都不超过104。

输出格式:

在一行中输出能够串成的绳子的最大长度。结果向下取整,即取为不超过最大长度的最近整数。

输入样例:

8
10 15 12 3 4 13 1 15

输出样例:

14

分析

  • 这个题目啊,说实话开始有点读不懂,我就翻译它一下:有n段绳子,把它们拼接起来,要最长。拼接的方式不是直接拼接,是拿已拼接的长度 + 新绳子段的长度 的和减半。这样就能看懂了吧。所以这道题的难度在于—读题
  • 解决方式有点像这学期学过那个贪心算法,长的要减的次数少一些,这样可以最大;
  • 向下取整数,就不进位了,

代码

#include <iostream>
#include <algorithm>
#include <vector>
int main(){int n, res = 0;std::cin >> n;std::vector<int> len(n);for (int i = 0; i < n; i++) std::cin >> len[i];sort(len.begin(), len.end());res = len[0];for (int i = 0; i < n; i++) res = (len[i] + res) / 2;std::cout << res;return 0;
}

错误

  • 我开始直接用了定长数组int len[m],提交编译错了,看那个意思是没有这个方法,具体报错:request for member ‘begin’ in ‘len’, which is of non-class type ‘int [n]’ sort(len.begin(), len.end());
  • 还有,第一次是不会把绳长折半的,第二个 for 循环下标从 1 开始。

这篇关于PATB 1070 绳结 (要点在于读题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/252242

相关文章

系统优化要点

这是常用的系统优化要考虑的点,在系统设计和代码评审以及代码优化时加以考虑,最大限度提高系统性能:  1. 优化算法,选择合适高效算法,降低不必要递归,循环,多层循环嵌套,避免循环内初始化等。  2. 避免申请过多不必要的内存  3. 及时释放资源,降低资源使用时间,包括内存,IO,网络,数据库等。  4. 使用缓存:缓存常用的,不易变化的。  5. 慎用数据库锁。确

c语言要点!

其他合法的输入:     1.    3空格 空格4空格 空格 空格5 空格 回车     2.    3回车4空格5回车     3.    3(tab键)4回车5回车     例子2     #include<stdio.h>     #include<stdlib.h>     int main()     {     int a,b,c;     s

互联网开发要点

垂直扩展 横向扩展 业务分拆 数据读写分离 缓存读写 异步处理(消息队列)

20151214 要点摘录2

算法: 四火的数据库算法10题 http://www.raychase.net/2810 leetCode解题报告 http://bookshadow.com/leetcode/ 学习算法之路(转) http://blog.csdn.net/sunboy_2050/article/details/5656823 10分钟没有思路的就找例子 http://blog.csdn

20151214 要点摘录1

eclipse用法 --- 涉及到的eclipse的使用 在接口名上按F4 可以看继承关系    按ctrl+T可以找实现类 ctrl+shift+r查找文件 MyBatis的设计主要是把对数据库的增删改查的sql语句和JavaWeb工程的POJO做绑定 1 配置sql语句的映射文件 2 在conf.xml中配置数据库连接并关联sql语句的映射文件 3 在dao中编写代码,加载con

2024国赛论文拿奖快对照这几点及评阅要点,勿踩雷区!(国赛最后冲刺,提高获奖概率)

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 2024“高教社杯”全国大学生数学建模竞赛已过去第三个夜晚,小伙伴们都累了没有,如果感到思维滞涩,别忘了稍作休息,放松一下自己,准备迎接国赛非常重要的收尾阶段——论文。 国赛这几天的努力最后都

生命在于运动

程序员和设计师大部分时间都坐在电脑前。有效的锻炼有助于他们更好地工作。 传统的: 当坐在电脑桌前的时候 脚触地。双手在肘部弯曲。打字时手应搁在桌子上。键盘和鼠标应在触手可及的地方。显示屏应在视线水平上,不高不低。光线最好应来自上方。即光线应该从天花板上照下来。每隔20分钟远眺。可降低眼睛长时间盯着近距离物体产生的疲劳。鼠标和手差不多大小。使用全尺寸符合人体工学的键盘。我个人比较喜欢Mi

流程图符号速查:快速掌握流程图绘制要点

流程图是一种以图形化方式表示算法或过程的步骤和逻辑关系的图表,它通过使用一系列标准的符号和连接线来清晰地展示流程的顺序和决策点。这种表示方法不仅使得复杂的过程更加易于理解,而且也便于跟踪和优化。以下是对流程图的进一步扩写,包括其制作步骤、应用场景和一些实用技巧。流程图常常用来表示一些动态过程,通常会有一个“起点”, 可以有一个或多个终点,流程图可以直观、明确地表示动态过程从开始到结束的全部步骤,在

HDFS要点剖析

谈到大数据,不得不提的一个名词是“HDFS”。它是一种分布式文件存储系统,其系统架构图如下图所示: 从图中可以了解到的几个关键概念 元数据(MetaData)机架(Rock)块(Block) 从图中可以了解到的两个重要组件: NameNodeDataNode 需要了解的另一个组件: SecondaryNameNode 三个重要的组件说明 NameNode 简单地说,NameNod

RF射频信号布局布线要点

RF射频信号布局布线要点 一、射频产品布局要求: 1、布局采用一字型布局。在同一个屏蔽腔体内,布局时应该按RF主信号流一字布局由于空间限制,如果在同一个屏蔽腔内,RF主信号的元器件不能采用一字布局时,可以采用L形布局,不要用U字形布局。 2、相同单元的布局要尽量保证完全相同。有多个接收通道和发射通道,就要保证多个通道的布局和布线要完全相同。 3、布局时就要考虑RF主信号走向,和器件