PAT 1070. 结绳(25)-乙级
给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。
给定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)-乙级相关推荐
- PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642 题目描述 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下 ...
- C++学习之路 | PTA乙级—— 1070 结绳 (25 分)(精简)
1070 结绳 (25 分) 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连. ...
- 1070. 结绳(25)
1070. 结绳(25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一段一段的绳子,你需要把它们串成一条 ...
- 1070 结绳 (25 分)(这该死的测试点)
1070 结绳 (25 分) 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连. ...
- PAT 1070 结绳
1070 结绳 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连.每次串连后,原 ...
- PAT 1070 结绳 python
1070 结绳 (25 分) 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连. ...
- PAT乙级-1070. 结绳(25)
给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连.每次串连后,原来两段绳子的长度 ...
- 【PAT乙级】1070 结绳 (25 分)
题目地址 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; ...
- 【最详细解析】1070 结绳 (25分)_18行代码AC
立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的 ...
最新文章
- css设置元素继承父元素宽度_CSS设置超链接A标签宽度和高度
- mysql路径查找_如何在MySQL的具有文件路径的列中查找和替换?
- oracle 存储过程 stored procedure 查询一条记录或多条记录
- 【报告分享】二次元衍生创作行业报告.pdf(附下载链接)
- 数据库里的小知识❤️
- windows 字符编码总结
- cas 单点登录_松哥手把手教你入门 Spring Boot + CAS 单点登录
- C#基础知识四之override和new的区别
- 删除表记录(delete from where )
- 13.5 Prepared Statements
- 台式计算机麦说不了话,耳机有声音麦克风没声音怎么办?解决电脑耳机有声音麦不能说话...
- 在SVG中旋转图形,需要设置各个图形的旋转中心点
- 电话程控交换机安装经验
- snowboy个人模型制作
- 电商网站商品详情架构
- 你还在抱怨职场的不公吗?
- dmz主机就是DNAT功能的体现
- docker通过dockerFile中添加中文字体
- Win11系统怎么禁止OneDrive开机自启操作分享
- idea热部署与重启
热门文章
- 附加数据库后登陆报错
- fidder设置断点,修改请求参数等
- vCenter6.0配置一:配置分布式交换机
- 从数据表中取出第n条到第m条的记录的方法
- 第三次被盗:Cream Finance 疑存在漏洞,价值1.3亿美元的密币失窃
- HackerOne 发布《2021年黑客报告》:黑客的动力、发展和未来
- Apache Struts 修复 OGNL 技术中可能存在的 RCE 缺陷
- ZDI 公布多个尚未修复的 Windows 高危0day详情
- 如何获得select被选中option的value和text和......
- Linux shell 脚本入门教程+实例