1 条题解
-
0
思路分析
1. 任务拆解:
- 读取钢管数量n
- 读取每根钢管的长度、直径和编码
- 按特定规则对钢管进行排序
- 输出符合要求的钢管编码
2. 关键点分析:
- 排序规则优先级:
- 长度从长到短(c[i]从大到小)
- 长度相同时,直径从小到大(size[i]从小到大)
- 长度和直径都相同时,编码从大到小(nu[i]从大到小)
- 需要同时交换三个属性以保持数据一致性
- 使用选择排序思想进行多条件比较和交换
3. 步骤规划: 第一步:读取钢管数量n 第二步:循环读取每根钢管的长度、直径和编码 第三步:按规则进行多条件排序 第四步:输出排序后第一根钢管的编码
4. 代码对应:
cin>>n:读取钢管数量- 第一个
for循环:输入钢管的长度c[i]、直径size[i]、编码nu[i] - 排序双重循环:进行多条件比较和交换
if(c[i]<c[j]):比较长度,短的交换到后面else if(c[i]==c[j]):长度相同时比较直径if(size[i]>size[j]):直径大的交换到后面(需要细的)else if(size[i]==size[j]):直径相同时比较编码if(nu[i]<nu[j]):编码小的交换到后面(需要编码大的)- 多个
swap:保持三个属性数据一致性 cout<<nu[1]:输出符合要求的钢管编码
信息
- ID
- 4107
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 58
- 已通过
- 26
- 上传者