1070. 结绳(25)

python 1070 结绳 (25 分) 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另 Python 1070 结绳 (25 分) 解题思路呢就是:长度很长的绳子如果一直对折只会越折越短而且短的相较长度不长的绳子要短得多,即长绳子对折比短绳子损耗的更多,如果要想获得最后尽可能长的绳子,就要先从短绳子动手起,即先把所有的绳子按长度大小排序,最短的俩相加除2即她俩的中位数这个数肯定是比最短的俩绳子较大的那个短的,同理来个循环将中位数与剩下最短的绳子逐一进行处理就能得到所需结果 给定一段一... 阅读详情

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

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

输入格式:

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

输出格式:

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

输入样例:
8
10 15 12 3 4 13 1 15
输出样例:
14
备注:难点在于题目理解。每次串联,绳子长度减半,看样例数据,如果15的绳子第一轮就串联,N轮后会减半N次,损失最多;如果1的绳子第一轮串联,N轮后
损失最少(最多损失1),所以,要从小到大的顺序进行串连。读入数据,排序一次(我用了插入排序),然后开始串连,最后输出长度。
#include <stdio.h>

void ins(int *a, int n); 
void swap(int *, int *);

int main(void)
{
	int n;
	scanf("%d", &n);
	
	int num[n];
	int i;
	for(i=0; i<n; i++)
	{
		scanf("%d", &num[i]);
	}
	
	ins( num, n); /*对输入的数据进行插入排序*/
	
//	for(i=0; i<n; i++) /*测试代码*/
//	{
//		printf("%d ", num[i]);
//	}
	
	int len = num[0];
	for(i=1; i<n; i++)
	{
		len = (len+num[i]) / 2;
	}
	
	printf("%d\n", len);
	
	return 0;
}

void ins(int *a, int n) /*插入排序*/ 
{
	int i, j;
	for(i=1; i<n; i++)
	{
		for(j=i; j>0; j--)
		{
			if ( a[j] < a[j-1] )
			{
				swap(&a[j], &a[j-1]); /*交换*/ 
			}	
			else
			{
				break;
			}			
		}
		
	}
}

void swap(int *a, int *b) /*交换两个变量的值*/ 
{
	int tmp;
	tmp = *a;
	*a  = *b;
	*b  = tmp;
}


Altium Designer 21 DRC检查:从新手到高手,这10个常见错误你踩过几个? 本文详细解析Altium Designer 21 DRC检查中的10个高频错误,包括间距违规、线宽违规、未连接网络等常见问题,并提供精准修复方案和实战技巧。通过分层诊断、智能规则设置和三维排查等方法,帮助工程师从新手进阶为高手,提升PCB设计效率和质量。 阅读详情

相关推荐

双硬盘下Ubuntu 16.04与Win10双系统的安装

之前写过一个双系统安装过程,今天再次整理的原因是想重点强调双硬盘的区别。标红的一定要注意看,那就是我自己一步一步踏出来的坑啊...   基础步骤就不再重复,重点讲区别,需要看详细步骤的童鞋(或者你只有一个硬盘)请看我上一篇博客https://blog.csdn.net/weixin_40308540/article/details/80157444   区别:双硬盘和单硬盘的区别是什么呢?...

不吃包子 1124

PAT乙级1070

1070. 结绳(25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳

湛蓝的天空 884

minist手写数字的识别代码复现(pytorch 版本)

电脑系统:Windows 10语言环境:Python 3.8.18编译器:jupyter notebook深度学习环境:torch == 1.13.1+cu116显卡及显存: Tesla V100-PCIE-32GB卷积神经网络(Convolutional Neural Network,CNN或ConvNet)是一种 具有局部连接、权重共享等特性的深层前馈神经网络. 目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的 前馈神经网络。

2202_75521293的博客 2620

PAT B1070 结绳 (25point(s))

给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (2≤N≤10​4​​);第 2 行给出 ...

qq_42347617的博客 202

从SC7A20数据手册到代码:一步步搞定加速度值读取与换算(避坑指南)

本文详细解析了SC7A20三轴加速度传感器的数据手册,从寄存器配置到原始数据读取,再到加速度值的换算方法。通过代码示例和避坑指南,帮助开发者准确实现加速度值的读取与换算,适用于嵌入式开发和运动检测应用。

weixin_26878995的博客 587

高光谱知识(1)-高光谱成像技术的理解

系列文章目录 高光谱技术可以获得待观测目标或场景的连续单色光谱图像,并通过空间维(x, y)数据和光谱维(λ)数据共同组成三维观测数据立方体,从而为研究人员提供探测目标或场景中的每一个点的空间和光谱特征细节。这种兼具相机的高分辨成像能力和光谱仪的高光谱分辨能力使得高光谱被广泛应用于测绘遥感、目标识别、环境监测与评估、临床影像诊断、过程监控等任务中,并在地理、空间、海洋、气候、大气、农业、植被、生态、医药、安防、制造与色度等多个领域中发挥巨大作用。 文章目录系列文章目录前言一、按获取数据的过程划分二、按照光

Echo_Code的博客 1万+

PAT-B1070 结绳(25 分)

分析: 采用贪心策略,每次取出两根最短的绳子进行拼接,将拼接后的绳子按长度排序放到绳子集合中,直到集合中只剩1根绳子。用multiset实现很方便。

qq_38127801的博客 539

3步搞定专利数据爬取:用Selenium绕过国家知识产权局反爬(附完整代码)

本文详细介绍了3种高效获取专利数据的技术方案,重点解析了使用Selenium绕过国家知识产权局反爬的实战方法,并提供了完整代码示例。文章还探讨了Requests+lxml轻量级方案和混合技术策略,帮助开发者根据需求选择最佳数据爬取方案,特别适合需要专利统计数据的开发者参考。

weixin_29029995的博客 1111

1070 结绳 (25 分)

PAT 乙级真题 1070 结绳 (25 分) Python/C++实现,通过所有测试点。 **题意描述:** 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。

花花生的博客 555

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

ProceduralMan的博客 7410

2025年12月GESP真题及题解(C++一级): 小杨的爱心快递

2025年12月GESP真题及题解(C++一级): 小杨的爱心快递

王老师青少年编程 1648

1070 结绳 (25分)

1070 结绳 (25分) 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 rope.jpg 给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (2≤N≤10 ​4 ​​ );第 2 行给出 N 个正整数,即原始绳段的长度,数字间以空格分隔。所有整数都

qq_43060884的博客 194

PyCharm 配置 Anaconda 环境时找不到 python.exe 的解决办法

通过本文的排查步骤与详细解决方案,你应该能够迅速定位并修复 PyCharm 配置 Anaconda 环境时找不到 python.exe 的问题。确保正确设置环境路径、激活目标环境以及手动指定解释器路径是解决此问题的关键。随着开发工具与包管理器的不断更新,类似的问题可能会出现新的变体。持续关注官方文档、社区讨论和版本更新,可以帮助开发者及时适应新变化,并优化工作流程。希望本文提供的分析和代码示例能为你的开发环境配置带来帮助,让你在 PyCharm 与 Anaconda 的高效协同下,专注于创新与代码实现。

s13596191285的博客 3117

1070 结绳 (25分)(Java 题解)

1070 结绳 (25分) 原题链接:传送门 一、题目: 二、解析: AC代码: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StreamTokenizer; import java.util.Arrays; /** *...

长生的梦呓 618

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

PAT乙级 1070 结绳 (25分)

1070 结绳 (25分) 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (2≤N≤104...

一起加油 4816

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

PAT 1070 结绳 (25分)

1070 结绳 (25分) 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (2≤N≤10​...

ganlanA的博客 266

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

PAT 1070 结绳 (25分) 题解 C++

PAT 1070 结绳 (25分) 题目详情 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。 输入格式 每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (2≤N≤10^​4);第 2 行给出 N 个正整数,即原始绳段的长度,数字间以空格分隔。所有整数都不超过10

Bzmer的博客 533

PAT 乙级 1070结绳(25 分)

PAT 乙级 1070结绳(25 分) 本题乍一看,我初步理解为最小生成树这种东西,但实际上 1 2 3 第一小和第二小的一半一定小于第三小,所以排序后重复累加,本人代码,也不能说原创,因为这题思路大概每个人都差不多! #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int num,longs[20000]; scanf

一棵小白菜的博客 233

PAT乙级 1070 结绳 (25 分)

PAT乙级练习总结 PAT乙级 1070 结绳 (25 分) 希望我的思路可以帮助你。 文章目录PAT乙级练习总结一、分析二、代码总结 1070 结绳 (25 分) 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1

jiaoooooo的博客 191

1070 结绳 (25 分)

1070结绳(25分) 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 给定N段绳子的长度,你需要找出它们能串成的绳子的最大长度。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数N(...

韩旭051的博客 1672

1070 结绳 (25分)

1070结绳(25分) 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 给定N段绳子的长度,你需要找出它们能串成的绳子的最大长度。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数N(2...

chen_zan_yu_的博客 275

1070结绳(25分)

结绳 (25分) 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (2≤N≤10的4次幂​​ );第 2 行给出 N 个正整数,即原始绳段的长度,数字间以空格分隔。所有整数都不超过10的​

weixin_45344430的博客 383

1070 结绳(25 分)

???今天连续做了几题,结果都是这样十几二十行就结束了。。。什么情况,老师疯狂怜悯? 1070 结绳(25 分) 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。 ...

(为大佬)递茶员 250

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

PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642 题目描述 给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 给定N段绳子的长度,你需要找出它们能串成的绳子的最大长度。 输入格式: 每个输入包含 1个测试用例。每个测试用例第1 行给出正整数N (2≤N≤10^4);第 2 行给出 N个正

lingchen1120的博客 209
上一篇: 1026. 程序运行时间(15)
下一篇: 1051. 复数乘法 (15)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值