用python来解PAT乙级1055集体照-25-满分(代码简洁注释全)

【Python解题1】PAT 乙级1055 集体照(详解)测试点345错误原因分析 题目传送门 语言:python3.9 编译工具:pycharm 社区版 输入样例: 10 3 Tom 188 Mike 170 Eva 168 Tim 160 Joe 190 Ann 168 Bob 175 Nick 186 Amy 160 John 159 输出样例: Bob Tom Joe Nick Ann Mike Eva Tim Amy John 题目分析: 给出N个人的名字和身高,要求站K排队列,并且和日常拍照一样,后面的同学必须比前面高,而且最高的站中间,使得站队类似倒“V”形。 需 阅读详情

本题看题目会觉得不知道该怎么下手,分析能把解题步骤想出来,但是代码又会觉得越敲越麻烦

作为考试中压轴的题目,这题确实很麻烦

先将输入的学生信息排序,然后输出最后一排,输出完最后一排剩下的会很好处理

但是将最后一排单拎出来输出又会占去很多行代码

可以先创一个用来输出的列表,因为学生信息已经排序好了,直接往列表里添加数据就行,当列表数据到达一排人数时就输出,然后清空,继续添加下一行(第一行也就是最后一排输出完了后面每排人数都相等了)

因为最高的站中间,然后先右后左(从你的角度是先左后右),所以往输出列表里添加数据时也是先从你的右边开始添加

代码如下,有注释:

n ,k = map(int,input().split())#人数,排数
stu = []#创建列表
for i in range(n):
    stu.append(input().split())#学生信息姓名+身高放入列表

#按姓名正序
stu = sorted(stu,key = lambda stu: stu[0])
#再按身高倒序
stu = sorted(stu,key = lambda stu: int(stu[1]), reverse=True)

num = n// k#前排人数
final = n// k+n% k#最后一排人数
total = 0#变量,用来数数,每到一排就输出
res = []
for i in range(n):
    #右边比左边高,先右边开始
    if total%2 == 0:#偶数的话,就从右边开始追加
        res.append(stu[i][0])
    else:#奇数,从左边加
        res.insert(0, stu[i][0])
    total +=1
    #达到最后一排人数,输出
    if total == final:
        print(' '.join(res))
        # 除了最后一行外,其余各行人数相等
        final = num
        res = []
        total = 0#列表和数数的变量都清空

提交结果:

自动驾驶关键技术(一):时间敏感网络TSN 时间敏感网络TSN的基本概念、协议族介绍和开发流程。 阅读详情

相关推荐

电影台词预测类型:NLP小样本多标签分类实战

电影类型预测本质上是短文本语义建模问题,核心在于从高度碎片化、低语义密度的台词(平均仅12.7词)中挖掘隐含的类型学编码规则。其技术难点在于:需应对省略主语、倒装、拟声词等非规范表达;处理Drama与Comedy等类型强共现的多标签耦合;并克服领域迁移障碍——维基文本预训练模型在台词上性能骤降0.11。解决方案聚焦RoBERTa微调、类型感知注意力机制与标签平滑策略,兼顾小样本鲁棒性与业务可解释性,广泛适用于影视元数据标注、智能推荐系统及NLP教学实践。

weixin_33309048的博客 288

PAT (Basic Level) Practice 1055 集体照 Python解法

目录一、题目二、输入输出三、样例四、题目分析五、Python代码 一、题目 拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 1.每排人数为 N/K(向下取整),多出来的人全部站在最后一排; 后排所有人的个子都不比前排任何人矮; 2.每排中最高者站中间(中间位置为 m/2+1,其中 m 为该排人数,除法向下取整); 3.每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、186、175、170,则队形为175、188、190、1

m0_46339652的博客 496

从零到一:手把手教你用DJI E-Port套件为M350 RTK开发第三方负载(PSDK V3实战)

本文详细介绍了如何使用DJI E-Port套件为M350 RTK开发第三方负载,涵盖硬件配置、开发环境搭建及实战应用。通过PSDK V3开发套件,开发者可以高效实现负载与无人机的通信,适用于电力巡检等工业场景,提升开发效率与系统稳定性。

weixin_26841743的博客 702

PAT Basic Level 1055 集体照 解题思路及AC代码 v1.0

排序 + 自定义排序 + 结构体数组

thexiaosi的博客 204

高效 DEM 拼接

通过以上步骤的系统实施,能够实现高效、准确的大型地理信息系统 DEM 数据拼接,满足复杂和大规模项目的应用需求。

llhllq2015的博客 1033

【AI生成】 LoRa无中心自组网实现方案

LoRa技术是一种低功耗广域网通信技术,它采用了扩频频率调制技术,能够实现远距离的传输。LoRa在物联网中具有重要的应用价值,可以支持大规模的设备连接并且具有较低的成本。同时,LoRa具有高度的抗干扰能力和适应性,能够在复杂的环境中实现稳定的通信。通过使用无中心自组网实现方案,可以进一步提高LoRa网络的灵活性和可靠性,实现设备之间的智能互联。LoRa无中心自组网实现方案将为物联网应用提供更加便捷和高效的通信解决方案。LoRa无中心自组网实现方案一、无中心自组网概念及优势。

qq_31310977的博客 2090

PTA 1055 集体照(Python3)

PAT (Basic Level) Practice (中文)

weixin_55730361的博客 207

c语言国际象棋(easyx图形库)

c语言实现的国际象棋,先放源码,有空再更 所有图形资源均来源于网络,侵删 #include <graphics.h> #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> #include <time.h> #define HEIGHT 800 #define WIDTH 1100 #define SIZE 100 #define true.

Betelgeuse13的博客 1914

PAT 1055 集体照 (25 分)

#include <iostream> #include <algorithm> #include <vector> using namespace std; struct stu{ string name; int height; }; bool cmp(stu a,stu b){ if(a.height!=b.height){ return a.height>b.height; }else{ re

m0_48711099的博客 195

芯擎SEC1000芯片参数详细介绍

随着龙鹰一号的不断进化和应用,未来的智能座舱将不仅仅是显示和控制的集成,更是人与车之间的一种默契和无缝交互的体现。在汽车行业迈向智能化和电动化的浪潮中,座舱已不仅仅是一个驾驶者的操作空间,而是逐渐演变为一个集娱乐、信息、控制于一体的智能交互平台。今天的汽车不仅需要强劲的动力和炫酷的外观,更需要一颗强大而智能的“心脏”来支撑复杂的座舱体验和安全驾驶需求。想象一下,未来的汽车不再仅仅是交通工具,它将成为你的移动私人管家,了解你的习惯,甚至提前预测你的需求。让我们一起走进龙鹰一号的世界,探索智能座舱的无限可能!

weixin_43199439的博客 1724

统计学习导论(ISLR) 第四章分类算法课后习题

统计学习导论(ISLR) 参考资料: The Elements of Statistical Learning An Introduction to Statistical Learning 统计学习导论(ISLR)(二):统计学习概述 统计学习导论(ISLR)(三):线性回归 统计学习导论(ISLR)(四):分类 ISLR统计学习导论之R语言应用(二):R语言基础 ISLR统计学习导论之R语言应用(三):线性回归R语言代码实战 ISLR统计学习导论之R语言应用(四):分类算法R语言代码实战 统计学习导论

阿里云专家博主、数据科学领域优质创作者、统计er在读 2万+

全部博文链接汇总(不断更新)

用python来解 PAT 1001 害死人不偿命的(3n+1)猜想-15-满分 用python来解 PAT 1002 写出这个数 -20-满分 用python来解PAT乙级1042 字符统计-20-满分 用python来解 PAT乙级 1022D进制的A+B -20-满分 用python来解 PAT 1048数字加密-20-满分无超时 用python来解 PAT 1050螺旋矩阵-25-满分无超时 用python来解 PAT 1060爱丁顿数-25-满分无超时 用python来解 PAT 1061判断题-

pythonuser1的博客 360

初探802.11协议(6)——Wi-Fi 6新特性简介

Wi-Fi 6新机制(特性)介绍

FanFF的博客 1522

PAT乙级1055

题目链接 坑点 测试点1、2 对每排只有一个人与所有的人都在同一排这两种情况要特殊处理 实现 #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; using namespace std; struct man { string name; in...

DoctorLDQ的博客 411

温度PID控制PLC程序

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

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

PAT1055 集体照 (25 分)【3/6通过】

题目 后3个测试点过不去 代码 #include&lt;iostream&gt; #include&lt;string&gt; #include&lt;vector&gt; #include&lt;algorithm&gt; using namespace std; class Stu { public: int height = 0; string name; }; class Row ...

寒泉 1586

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C++版浙大PAT乙级1055(25分)

https://pintia.cn/problem-sets/994805260223102976/problems/994805272021680128 这题搞死我啦,做了一下午。 一开始用了一个的方法,但是后面才意识到身高有相同的,所以放弃那个方法了。后面去学了用sort对二维数组进行排序,其中忘记把string转int来比较。排好序后开始排集体照的位置。用一个for循环代表访问队形的每一行,算出该行的总人数,找到最中点,找到第一行的人,对应地放到位置上去。 #include<iostr.

Hillbox 213

PAT A1055 The Word's Richest 简单思路

题目链接 《算法笔记》里面的方法其实挺好的,作者说如果在输出之前不先预处理一下排序数据, 会在第二个测试点那里超时。 但事实上并不会超时, 可能是因为现在服务器运算速度比几年前高了? 书上的参考代码: #include <cstdio> #include <cstring> #include <algorithm> using namespace std; in...

xiaoh1999的博客 187

pat乙级1055

传送门 wyx教我哒哈哈哈哈哈得留下来 他的code真的好简洁清爽 #include&lt;bits/stdc++.h&gt; using namespace std; const int MAXN=10010; struct node{ string s; int x; bool operator &lt;(const node&amp;A)const { if(x==A.x) r...

要考甲级的fairy 289

PAT乙级1055题解

题目详情: 1055 集体照 (25 分) 拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每排人数为 N/K(向下取整),多出来的人全部站在最后一排;后排所有人的个子都不比前排任何人矮;每排中最高者站中间(中间位置为 m/2+1,其中 m 为该排人数,除法向下取整);每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、186、175、170,则队形为175、188、190、186、170。这里假设你面对拍照者,所以你的左边是中

YHL的博客 319

pat 乙类 1055 python

一、题目要求身高相同时,按名字字母升序排列。先按名字字母升序排列,再按身高降序排列 二、使用循环嵌套创建嵌套列表(矩阵),如果有多余的人,将多个0插入第一行 三、用左右两个索引值,向嵌套列表中添加名字 四、输入结果,每行最后一个名字后面没有空格 n,k = map(int,input().split()) students_list = [] for i in range(n): name,height = input().split() students_list.append(

qq_20662425的博客 187

【Python】 1055 集体照 (25 分)

注:列表元素一左一右排序 拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每排人数为 N/K(向下取整),多出来的人全部站在最后一排; 后排所有人的个子都不比前排任何人矮; 每排中最高者站中间(中间位置为 m/2+1,其中 m 为该排人数,除法向下取整); 每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、186、175、170,则队形为175、188、190、186、170。这里假设你面对拍照者,所以你的左边是中间人的右.

张某文_Lambda的博客 647

1055 集体照 Python实现

1055 集体照(25 分) 拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每排人数为 N/K(向下取整),多出来的人全部站在最后一排; 后排所有人的个子都不比前排任何人矮; 每排中最高者站中间(中间位置为 m/2+1,其中 m 为该排人数,除法向下取整); 每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧...

BTboay 1139

LeetCode-Python-1055. 形成字符串的最短路径 (双指针)

对于任何字符串,我们可以通过删除其中一些字符(也可能不删除)来构造该字符串的子序列。 给定源字符串source 和目标字符串target,找出源字符串中能通过串联形成目标字符串的子序列的最小数量。如果无法通过串联源字符串中的子序列来构造目标字符串,则返回-1。 示例 1: 输入:source = "abc", target = "abcbc" 输出:2 解释:目标字符串 "abc...

Keep Coding 3009

PAT 乙级 1055 集体照python

PAT 乙级 1055 集体照python

m0_43424109的博客 219

1055. 集体照 (25) python篇

1055. 集体照 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下: 每排人数为N/K(向下取整),多出来的人全部站在最后一排;后排所有

zjw_python的博客 1471

【PAT乙级】1055 集体照

题目链接:1055集体照 思路 将输入进行排序,推荐从高到低排,我懒得改了。 再创建一个用于输出的数组,按照要求将排好序的数据逐行逐位填充即可。 25分的题一次AC还是蛮开心的。 代码 #include <iostream> #include <algorithm> using namespace std; struct person{ string name; int tall; }; int cmp(person p1,person p2){..

五百零一 205
上一篇: 用python来解PAT 乙级1083是否存在相等的差 - 20 -满分
下一篇: 用python来解PAT乙级1026程序运行时间-15-满分
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值