PAT 乙级 1070 结绳
1070 结绳 (25 point(s))
给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。
给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。
输入格式:
每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (2≤N≤104);第 2 行给出 N 个正整数,即原始绳段的长度,数字间以空格分隔。所有整数都不超过104。
输出格式:
在一行中输出能够串成的绳子的最大长度。结果向下取整,即取为不超过最大长度的最近整数。
输入样例:
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 结绳相关推荐
- PAT乙级 1070 结绳
PAT乙级 1070 结绳 #include<iostream> #include<algorithm> #include<vector> #include< ...
- PAT乙级 1070 结绳 python
题目 思路: 每结一次绳,总长变短一半 需要注意的是:遍历绳结从第三个开始 代码 num_=int(input()) knot=list(map(int,(input().split())))sum_ ...
- PAT乙级-1070. 结绳(25)
给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连.每次串连后,原来两段绳子的长度 ...
- C++学习之路 | PTA乙级—— 1070 结绳 (25 分)(精简)
1070 结绳 (25 分) 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连. ...
- PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642 题目描述 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下 ...
- PAT 1070 结绳
1070 结绳 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连.每次串连后,原 ...
- PAT 1070 结绳 python
1070 结绳 (25 分) 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连. ...
- 1070. 结绳(25)
1070. 结绳(25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一段一段的绳子,你需要把它们串成一条 ...
- 1070 结绳(贪心)
给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连.每次串连后,原来两段绳子的长度 ...
最新文章
- 求有多少个数是这个数的约数
- Ubuntu16.04安装NVIDIA驱动+CUDA9.0+cuDNN7.0
- u盘锁电脑_Win10电脑无法识别U盘?这5步操作就能轻松搞定,收藏备用
- php显示TABLE数据
- 「日常训练」Common Subexpression Elimination(UVa-12219)
- Unity3dShader_边缘发光效果
- QQ2009任务栏的QQ图标怎么隐藏
- flask-SQLAlchemy 使用 session.commit() 处理异常回滚
- centos7ubuntu搭建Vulhub靶场(推荐Ubuntu)
- python在win7中不能运行_Python3.6在win7中无法正常运行的问题
- 带参方法的使用 0908
- Prometheus监控学习笔记之360基于Prometheus的在线服务监控实践
- Mybatis Plus简介_代码_以及文档地址_以及前置知识---Mybatis Plus工作笔记001
- 2021-2025年中国电动汽车充电器模块行业市场供需与战略研究报告
- 单片机单口不可用或被占用_新唐单片机代码评审总结
- Atitit 重大问题解决法---记不住问题的解决 目录 1. 记不住的原因	1 2. 大脑存储内容分布	2 2.1. Jvm的存储机制	2 2.2. 人的存储机制	2 2.2.1. 图片区视觉区
- cisco sla 简单配置
- 作为面试官,如何甄别应聘者的包装程度?
- python 如何调试uc浏览器_UC浏览器开发者工具
- 有道云笔记云端图片炸裂、无法显示及同步问题