1070 结绳 (25 分)

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

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

输入格式:

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

输出格式:

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

输入样例:

8
10 15 12 3 4 13 1 15

输出样例:

14

================================================

猛一看好像很麻烦,但其实是纸老虎。

方法:排序,从小到大依次连接,输出结果。

每一次连接时,旧绳子长度 =(旧绳子长度+新绳子长度) / 2。

绳子越早连接,对折的次数越多。

所以越长的绳子,越要靠后连上。

================================================

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

纸老虎【PATB1070】结绳 (25 分)相关推荐

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

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

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

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

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

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

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

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

  5. 1070 结绳 (25 分)

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

  6. 1070 结绳 (25 分) (C++)

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

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

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

  8. 1070. 结绳(25)

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

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

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

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

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

最新文章

  1. SQL与NoSQL区别-存储方式
  2. 怎么自学python软件-你是如何自学 Python 的?
  3. java获取数据库的列名,类型等信息
  4. C++ 虚函数和纯虚函数
  5. mysql索引背后的数据结构及算法
  6. kibana java_kibana安装
  7. [html] 如何实现多行文字梯形排版?
  8. Java 算法 素数分解
  9. “苹果正在走下神坛” | 畅言
  10. 第三堂:Java程序流程控制
  11. 记 笔记软件极力推荐------------->思源
  12. OSChina 周三乱弹 —— 九招助你工资秒长(干货哟)
  13. mysql使用存储过程循环修改数据
  14. 单片机C语言字符串转数字
  15. 阿里云服务器带宽不够升级怎么收费?
  16. python 函数基础
  17. 【JavaScript】(二)俄罗斯方块
  18. [禅悟人生]在劳动中品味幸福
  19. jq左右按钮控制内容左右移动
  20. 怎样用电池给铁锅作防锈

热门文章

  1. 西门子S7协议底层原理分析
  2. 微软公司等数据结构+算法面试100题
  3. 如何理解 AI + IoT = AIoT?
  4. 【程序设计】C语言初学者常犯的17条错误
  5. 基于Opencv实现连续检测yuv转bmp后的每一帧的sobel算法实现
  6. tensorflow英语怎么读_tensorflow怎么读
  7. Poco c ++ 库安装
  8. 110道python面试笔试题汇总,你能答对几道?
  9. echarts饼状曲线图,中间显示总数
  10. uniapp根据定位城市获取对应的天气