PTA金字塔游戏

PTA数字金字塔(PTA怎么用以及代码怎么敲) 发现了一个刷题的平台:计算机语言刷题 这个平台涵盖了c、python等一些语言的基础性质的题,光听课不练习一下是没有用的。 (PS:最好注册一个自己的账号,可以记录你上次做到哪里了) 介绍完了这个,那我们来看题,以数字金字塔为例,我来讲一下。 题目:其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注 意每个数字后面跟一个空格。 分析:观察数字金字塔的特点—每一行的空格数量等于金字塔总行数减去当前行(i)的位置,即blank=n-i; 注意题目中的“注意”, 阅读详情

幼儿园里真热闹,老师带着孩子们做一个名叫金字塔的游戏,游戏规则如下:

首先,老师把孩子们按身高从高到矮排列,选出最高的做队长,当金字塔的塔顶,之后在其余小朋友里选出两个最高的,站在队长的前面,队长左右手分别牵着他们的衣服,稍高的在左边,稍矮的在右边。新加入的小朋友依次作为新的队长,继续在其余小朋友里选出高的,按照相同的规则,新队长左右手分别牵着他们的衣服,依次加入到金字塔中。这样下来之后,全幼儿园的小朋友都牵在一起,组成一个大金字塔了。 问题来了,老师想知道两个小朋友之间间隔有多少个小朋友,你能帮帮老师吗?

绘图1.jpg

输入格式:

首先输入小朋友的数量N(不超过1000),之后N行,分别输入小朋友的姓名和身高,中间用空格隔开,姓名由不超过20个字符的字母组成,身高是50到130之间的整数。之后输入查询的数量Q(不超过100),随后是Q行查询,每行输入两个小朋友的姓名,中间用空格隔开。

输出格式:

请对每一个查询,在一行中输出两个小朋友之间间隔的小朋友的数量,如果输入的任意一个姓名找不到,则输出Name not found!,我们假定身高相同的小朋友,按姓名的字典序来确定顺序,字典序小的排前面,题目保证没有身高相同且姓名相同的小朋友。

输入样例:

在这里给出一组输入。例如:

5
Sandro 120
Dracon 110
Adela 120
Solmyr 100
Luna 90
3
Dracon Sandro
Dracon Luna
Luna Kyrre

输出样例:

在这里给出相应的输出。例如:

1
2
Name not found!

题目大意:

小朋友按身高从高到矮,名字从小到大排序,照图片的方式连接起来。

问两人相连中间有多少人?

思路:

两个人之间有n条链和n-1个人,把数人数变成数链有几条。

 方法:

一个人链两个人而且有排序顺序,满足了二叉树的条件!那我们建树(当然不是)

请看下图:

我们排完序之后就不用建树,循环把大的数/2,直到两个数相等。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl "\n"

const ll N = 1e3+7;
ll n,m;
string s,sx,sy;
map<string,ll>mp;

struct node{
	string name;
	ll len;
}v[N];

bool cmp(node a,node b){
	if(a.len != b.len)
		return a.len > b.len;
	return a.name < b.name;
}

void solve(){
	cin >> n;//从1开始可以让排序后的点/2就得到链接的点 
	for(ll i = 1 ; i <= n ; i ++)cin >> v[i].name >> v[i].len;
	sort(v+1,v+n+1,cmp);
	for(ll i = 1 ; i <= n ; i ++)mp[v[i].name] = i;
	cin >> m;
	while(m --){
		cin >> sx >> sy;
		if(!mp[sx] || !mp[sy]){//查无此人 
			cout << "Name not found!" << endl;
			continue;
		}
		ll x=mp[sx],y=mp[sy];
		if(x == y){//同一个人 
			cout << 0 << endl;
			continue;
		}
		ll sum=-1;
		while(x != y){//查到同一个人为止 
			x > y ? x >>= 1 : y >>= 1;
			sum++;
		}
		cout << sum << endl;
	}
	return ;
}

int main(){
	ll t=1;//cin >> t;
	while(t--)solve();
	return 0;
}
PTA浙大版《C语言程序设计(第4版)》题目集(参考代码) 阅读详情

相关推荐

什么是数据结构,都有哪些数据结构

  在计算机科学中,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。 “数据结构”作为一门独立的课程在国外是从1968年才开始设立的。 1968年美国唐·欧·克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计技巧》第一卷《基本算法》是第一本较系统地阐述数

liwenfengf1988的专栏 7414

详解PTA金字塔问题

pta金字塔一种解体情况如下: #include<stdio.h> void pryamid(int n); int main() { int n; scanf("%d", &n); pyramid(n); return 0; } void pryamid(int) { for(i =0; i<=n;i++) { for(int j= 0;j<n-i; j++) putchar(' '); for(int j; j &l

weixin_57383611的博客 465

逆向工程的艺术:如何绕过PDD的长连接机制实现高效抓包

本文深入解析了如何通过逆向工程技术绕过拼多多(PDD)的长连接机制实现高效抓包。详细介绍了动态调试方案、关键函数Hook技巧及流量解密重组方法,帮助开发者在非Root环境下捕获并解析PDD的加密数据。结合Python工具链,实现稳定数据采集,适用于电商数据分析和反爬策略研究。

weixin_29058331的博客 674

PTA 数字金字塔 (10 分)

1 121 12321 1234321 123454321

m0_63168284的博客 4089

ESP32锂电池电量检测实战:从引脚选择到低功耗优化(附完整电路图)

本文详细介绍了ESP32锂电池电量检测的实战方案,从ADC引脚选择到低功耗优化,提供完整的电路图和代码实现。通过MOS管智能开关和深度睡眠技术,显著降低静态功耗至0.5μA,提升设备续航能力。适合物联网开发者解决电量检测中的常见问题。

weixin_28731223的博客 461

【论文速读】MLDT:基于开源大语言模型的复杂长时机器人任务规划多层次分解方法

—在数据驱动的人工智能技术领域,开源大语言模型(LLMs)在机器人任务规划中的应用是一个重要的里程碑。近期基于开源大语言模型的机器人任务规划方法通常利用大量的任务规划数据集来提升模型的规划能力。虽然这些方法展现出了一定的前景,但它们在处理复杂长时任务时存在困难,因为这类任务需要理解更多的上下文信息并生成更长的动作序列。本文提出多层次分解任务规划方法(MLDT)来解决这一局限性。该方法创新性地在目标级、任务级和动作级对任务进行分解,以应对复杂长时任务带来的挑战。

muyulingfengye的博客 1644

PTA 空心字母金字塔+数字金字塔+字母金字塔

输入一个大写的英文字母,输出空心的字母金字塔。 输入格式: 一个大写英文字母。 输出格式: 一个空心的大写英文字母金字塔,其中第1层的“A”在第1行的第40列,列从1开始计数。 输入样例: E 输出样例: A B B C C

hand_up的博客 2278

ESP32S3编译micropython固件

编译ESP32芯片的micropython固件

m0_73253860的博客 2553

7-7 金字塔游戏 (25 分)

7-7 金字塔游戏 (25 分) 题目 幼儿园里真热闹,老师带着孩子们做一个名叫金字塔的游戏,游戏规则如下: 首先,老师把孩子们按身高从高到矮排列,选出最高的做队长,当金字塔的塔顶,之后在其余小朋友里选出两个最高的,站在队长的前面,队长左右手分别牵着他们的衣服,稍高的在左边,稍矮的在右边。新加入的小朋友依次作为新的队长,继续在其余小朋友里选出高的,按照相同的规则,新队长左右手分别牵着他们的衣服,依次加入到金字塔中。这样下来之后,全幼儿园的小朋友都牵在一起,组成一个大金字塔了。 问题来了,老师想知道两个小朋友

Baifeili的博客 4148

OWASP 2025版AI大模型攻击安全风险汇总(攻击方法种类)

提示词注入是大模型最基础、最常见的核心漏洞,攻击者通过构造直接或间接的恶意自然语言输入,篡改大模型原本的正常行为与输出结果。哪怕这类恶意内容对人类是隐藏、不可见的,只要模型能够正常解析读取,就会触发漏洞。它和大家常说的模型“越狱”相关,但并不等同:越狱是提示词注入的极端形式,会直接让模型彻底无视所有内置安全协议,完全脱离管控;而普通提示词注入,更多是针对性篡改模型行为、诱导执行特定操作。

墨痕诉清风的博客 514

宇树 Qmini 双足机器人完全开源:3D打印+5小时组装,新手也能玩转!

教育教学,成为学校里的竞赛竞技,实验课程,论文设计的本体;开发者可以根据开源资料轻松集齐所有零部件,结构件可全部通过3D打印完成(几乎完全不需要任何机加工零部件),搭配宇树的高可靠性电机和标准电池,客户打印完零部件后,大概仅需要3~5小时的手工组装即可得到一只可爱的Qmini小双足机器人本体。一起推动机器人的未来发展,创新没有边界,创造力是无限的,Qmini就是你的第一步,如果你也想做一个能动、能学、还能萌的小双足机器人,现在就可以动手了,全开源、真低门槛、只差你的3D打印机和一点点耐心。

雕爷学编程 1889

pta网,跳一跳以及金字塔问题(C语言)

1.微信小程序中的跳一跳相信大家都玩过。emmm???只学习不玩游戏?那就吃亏了…好好读题理解吧。    简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束。    如果跳到了方块上,但没有跳到方块的中心则获得1分; 跳到方块中心时,若上一次的得分为1分或这是本局游戏的第一次跳跃则此次得分为2分,否则此次得分比上一次得分多两分(即连续跳到方块中心时,总得分将+2,+4,+6,+8…)。    现在给出一个人跳一跳的全过程,请你求出他本局游戏的得分(按照题目描述的规则

weixin_46605165的博客 349

【YOLOv8改进[Conv]】使用OREPA助力V8更优秀

使用OREPA助力V8更优秀,降低训练成本,在不引入任何推理时间成本的情况下提高深度模型的性能。

静谧、淡雅 1917

【PTA-C语言】编程练习3 - 循环结构Ⅱ

PTA-C语言 编程练习3 - 循环结构 —— 9~15 题

谛凌的博客 2337

Vue2 - 最新详细实现接入天地图详细配置流程及示例代码教程,提供获取用户当前定位的城市名称及省市区数据、精准经纬度信息、IP属地定位、地图搜索标点等示例,解决天地图跨域报错/页面白屏/定位不准问题

vue2,nuxt2,天地图,使用教程,vue接入国家天地图,定位api,ip属地定位,获取用户当前位置数据,省市区,地图不显示,白屏,报错,vue2如何使用天地图,地图选点,cors跨域,白名单设置了还是不行,vue项目调用天地图api实现定位,Vue2中使用天地图,详细教程,天地图申请密钥key教程,经纬度,经纬度不准确,一直定位北京,定位在北京不准怎么办,nuxt项目天地图,网站,网页,h5页面,地图显示不全,获取当前定位,如何使用天地图,拿到客户ip地址定位城市名称,距离计算,实时搜索地址逆解析,天

🏆 前端领域优质创作者 5324

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【PTA】解密循环嵌套:从A开始的三角形字符阵列实战

本文以PTA经典题目“输出三角形字符阵列”为例,深入解析循环嵌套的核心原理与应用。通过拆解行列控制与字母连续递增的双重逻辑,提供从基础到优化的C语言实战代码,并总结常见错误与调试技巧,帮助初学者掌握处理二维数据结构的编程思维,为学习更复杂的算法与数据结构打下坚实基础。

yhn45678901的博客 718

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

练习5-3 数字金字塔 (15 分) PTA

题目我就不贴了,反正能来的人都看了。 1.代码:(这次真的很意外,一次通过) void pyramid( int n ) { int i,j,k; for(i=1;i&lt;=n;i++) { for(j=1;j&lt;=i;j++) { for(k=0;k&lt;n-i;k++) { printf(" “); } for(j=1;j&lt;=i;j++) {printf(”%d ",i);...

我会变强 3980

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

PTA浙大版《C语言程序设计(第3版)》题目集(参考代码)

本题目集是博主初学C语言时写的,由于本题目集和另一套题目集:浙大版《C语言程序设计实验与习题指导(第3版)》题目集的很多题目相似,所以本题目集很多题的超链接直接指向了另一套题目集的题目。 编程题: 题目号 题目名 练习2-1 Programming in C is fun! 练习2-3 输出倒三角图案 练习2-4 温度转换 练习2-6 计算物体自由下落的距离 练习2-8 计算摄氏温度 练习2-9 整数四则运算 练习2-10 计算分段函数[1] 练习2-11 计算分

Re:从零开始的代码生活的博客 7万+

PTA---7-3 堆宝塔(数据结构)

堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小,按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺序抓到的。重复此步骤,直到所有的彩虹圈都被抓完。最后 A 柱上剩下的宝塔作为一件成品,B 柱上剩下的彩虹圈被逐一取下,堆成另一座宝塔。问:宝宝一共堆出了几个宝塔?最高的宝塔有多少层?

weixin_73471816的博客 1367

浙大版《C语言程序设计(第4版)》题目集参考思路集

@[TOC]目录 函数题 1. 求m到n之和 2. 找两个数中最大者 3. 字符金字塔 4. 符号函数 5. 使用函数求奇数和 6. 使用函数计算两点间的距离 7. 使用函数求素数和 8. 使用函数统计指定数字的个数 9. 使用函数输出水仙花数 10. 使用函数求余弦函数的近似值 11. 空心的数字金字塔 12. 分类统计字符个数 13. 使用函数求特殊a串数列和 14. 使用函数输出指定范围内的完数 15. 使用函数输出指定范围内的Fib

weixin_61168459的博客 1693

浙大版《C语言程序设计(第3版)》题目集 PTA代码分享

浙大版《C语言程序设计(第3版)》题目集 自写答案参考

m0_46362033的博客 1753

xd—pta电子大类-Ex4-循环结构2题目解析——MZH

【代码】xd—pta电子大类-Ex4-循环结构2题目解析——MZH。

longlongzihan的博客 181

【PTA】浙大版《C语言程序设计(第3版)》题目集

微信扫码关注查看全部题目: 1、练习2-1 Programming in C is fun! (5分) 2、练习2-3 输出倒三角图案 (5分) 3、练习2-4 温度转换 (5分) 4、练习2-6 计算物体自由下落的距离 (5分) 5、练习2-8 计算摄氏温度 (10分) 6、练习2-9 整数四则运算 (10分) 7、练习2-10 计算分段函数[1] (10分) 8、练习2-11 计算分段函数[2] (10分) 9、练习2-12 输出华氏-摄氏温度转换表 (15分) 10、练习2-13 求N分之一序列前N

IT学长 1785

Java基础-浙大翁恺老师-第三章笔记

while 循环 初始程序-数数字 如下: Scanner in = new Scanner(System.in); System.out.print("input:"); int number = in.nextInt(); int count = 0; while(number>0) { number=number /10; count=c...

kode学习笔记 417

Spring-_-Bear 的 优快云 博客导航

路漫漫其修远兮,吾将上下而求索。

春天熊的技术博客 8084

L2-2 金字塔游戏

题目来源:天梯赛训练题 幼儿园里真热闹,老师带着孩子们做一个名叫金字塔的游戏,游戏规则如下: 首先,老师把孩子们按身高从高到矮排列,选出最高的做队长,当金字塔的塔顶,之后在其余小朋友里选出两个最高的,站在队长的前面,队长左右手分别牵着他们的衣服,稍高的在左边,稍矮的在右边。新加入的小朋友依次作为新的队长,继续在其余小朋友里选出高的,按照相同的规则,新队长左右手分别牵着他们的衣服,依次加入到金字塔中。这样下来之后,全幼儿园的小朋友都牵在一起,组成一个大金字塔了。 问题来了,老师想知道两个小朋友之间间隔有多

weixin_51032998的博客 680
上一篇: PTAxt的考研路
下一篇: PTA由斜杠划分区域
翰墨织梦
博客等级 码龄4年 384粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值