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

输入格式:

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

输出格式:

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

输入样例:
8
10 15 12 3 4 13 1 15
输出样例:
14

分析:因为所有长度都要串在一起,每次都等于(旧的绳子长度+新的绳子长度)/2,所以越是早加入绳子长度中的段,越要对折的次数多,所以既然希望绳子长度是最长的,就必须让长的段对折次数尽可能的短。所以将所有段从小到大排序,然后从头到尾从小到大分别将每一段依次加入结绳的绳子中,最后得到的结果才会是最长的结果~

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {int n;scanf("%d", &n);vector<int> v(n);for (int i = 0; i < n; i++)scanf("%d", &v[i]);sort(v.begin(), v.end());int result = v[0];for (int i = 1; i < n; i++)result = (result + v[i]) / 2;printf("%d", result);return 0;
}

PAT 1070. 结绳(25)-乙级相关推荐

  1. PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642

    PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642 题目描述 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下 ...

  2. C++学习之路 | PTA乙级—— 1070 结绳 (25 分)(精简)

    1070 结绳 (25 分) 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连. ...

  3. 1070. 结绳(25)

    1070. 结绳(25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一段一段的绳子,你需要把它们串成一条 ...

  4. 1070 结绳 (25 分)(这该死的测试点)

    1070 结绳 (25 分) 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连. ...

  5. PAT 1070 结绳

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

  6. PAT 1070 结绳 python

    1070 结绳 (25 分) 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连. ...

  7. PAT乙级-1070. 结绳(25)

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

  8. 【PAT乙级】1070 结绳 (25 分)

    题目地址 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; ...

  9. 【最详细解析】1070 结绳 (25分)_18行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的 ...

最新文章

  1. css设置元素继承父元素宽度_CSS设置超链接A标签宽度和高度
  2. mysql路径查找_如何在MySQL的具有文件路径的列中查找和替换?
  3. oracle 存储过程 stored procedure 查询一条记录或多条记录
  4. 【报告分享】二次元衍生创作行业报告.pdf(附下载链接)
  5. 数据库里的小知识❤️
  6. windows 字符编码总结
  7. cas 单点登录_松哥手把手教你入门 Spring Boot + CAS 单点登录
  8. C#基础知识四之override和new的区别
  9. 删除表记录(delete from where )
  10. 13.5 Prepared Statements
  11. 台式计算机麦说不了话,耳机有声音麦克风没声音怎么办?解决电脑耳机有声音麦不能说话...
  12. 在SVG中旋转图形,需要设置各个图形的旋转中心点
  13. 电话程控交换机安装经验
  14. snowboy个人模型制作
  15. 电商网站商品详情架构
  16. 你还在抱怨职场的不公吗?
  17. dmz主机就是DNAT功能的体现
  18. docker通过dockerFile中添加中文字体
  19. Win11系统怎么禁止OneDrive开机自启操作分享
  20. idea热部署与重启

热门文章

  1. 附加数据库后登陆报错
  2. fidder设置断点,修改请求参数等
  3. vCenter6.0配置一:配置分布式交换机
  4. 从数据表中取出第n条到第m条的记录的方法
  5. 第三次被盗:Cream Finance 疑存在漏洞,价值1.3亿美元的密币失窃
  6. HackerOne 发布《2021年黑客报告》:黑客的动力、发展和未来
  7. Apache Struts 修复 OGNL 技术中可能存在的 RCE 缺陷
  8. ZDI 公布多个尚未修复的 Windows 高危0day详情
  9. 如何获得select被选中option的value和text和......
  10. Linux shell 脚本入门教程+实例