1070 结绳 (25 point(s))

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

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

输入格式:

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

输出格式:

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

输入样例:

8
10 15 12 3 4 13 1 15

输出样例:

14

经验总结:

这一题....是基于贪心思想,要让绳子更长,当然要让长的绳子段后折,这样损失更少嘛~这里注意一个坑,就是在计算最终绳子长度时(设为L),应该令L=num[0](设排完序的数组为num[]),而不能令其为0,否则,第一次折绳子本应该为(num[ 0 ] + num [ 1 ] )/2 ,却变成(0 + num[ 0 ] )/2,多折了一次,答案就不一定对了,(如果num[ 0 ] 为0 那么是对的)

AC代码

#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn=10010;
int main()
{int n,num[maxn];while(~scanf("%d",&n)){for(int i=0;i<n;++i)scanf("%d",&num[i]);sort(num,num+n);double sum=num[0];for(int i=1;i<n;++i){sum=(sum+num[i])/2;}printf("%d\n",(int)floor(sum));}return 0;
}

PAT 乙级 1070  结绳相关推荐

  1. PAT乙级 1070 结绳

    PAT乙级 1070 结绳 #include<iostream> #include<algorithm> #include<vector> #include< ...

  2. PAT乙级 1070 结绳 python

    题目 思路: 每结一次绳,总长变短一半 需要注意的是:遍历绳结从第三个开始 代码 num_=int(input()) knot=list(map(int,(input().split())))sum_ ...

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

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

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

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

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

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

  6. PAT 1070 结绳

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

  7. PAT 1070 结绳 python

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

  8. 1070. 结绳(25)

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

  9. 1070 结绳(贪心)

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

最新文章

  1. 求有多少个数是这个数的约数
  2. Ubuntu16.04安装NVIDIA驱动+CUDA9.0+cuDNN7.0
  3. u盘锁电脑_Win10电脑无法识别U盘?这5步操作就能轻松搞定,收藏备用
  4. php显示TABLE数据
  5. 「日常训练」Common Subexpression Elimination(UVa-12219)
  6. Unity3dShader_边缘发光效果
  7. QQ2009任务栏的QQ图标怎么隐藏
  8. flask-SQLAlchemy 使用 session.commit() 处理异常回滚
  9. centos7ubuntu搭建Vulhub靶场(推荐Ubuntu)
  10. python在win7中不能运行_Python3.6在win7中无法正常运行的问题
  11. 带参方法的使用 0908
  12. Prometheus监控学习笔记之360基于Prometheus的在线服务监控实践
  13. Mybatis Plus简介_代码_以及文档地址_以及前置知识---Mybatis Plus工作笔记001
  14. 2021-2025年中国电动汽车充电器模块行业市场供需与战略研究报告
  15. 单片机单口不可用或被占用_新唐单片机代码评审总结
  16. Atitit 重大问题解决法---记不住问题的解决 目录 1. 记不住的原因 1 2. 大脑存储内容分布 2 2.1. Jvm的存储机制 2 2.2. 人的存储机制 2 2.2.1. 图片区视觉区
  17. cisco sla 简单配置
  18. 作为面试官,如何甄别应聘者的包装程度?
  19. python 如何调试uc浏览器_UC浏览器开发者工具
  20. 有道云笔记云端图片炸裂、无法显示及同步问题

热门文章

  1. 声音定位系统中一些问题
  2. 电脑无线如何启用dhcp服务器,win7系统使用无线连接遇到DHCP未启用报错如何解决...
  3. 2021年JAVA面试~光头佳的论述
  4. #同余最短路# [51nod] 遥远的旅途
  5. 电商互动消息如何进行架构演进?
  6. Win7安装完成后对系统的优化设置
  7. android输入法中文在哪里设置,android输入法怎么设置中文
  8. html引导蒙层,web开发中实现图标点击态蒙层
  9. 孝庄太后如何培养康熙的综合素质
  10. ubuntu 命令笔记