【2020蓝桥杯省赛】【填空题】排序(详解!)
目录
题目
题目链接
题目详细分析
源代码
答案
题目
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。
在冒泡排序中,每次只能交换相邻的两个元素。
小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符, 则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。
例如,对于字符串 lan 排序,只需要 1 次交换。对于字符串 qiao 排序,总共需要 4 次交换。
小蓝找到了很多字符串试图排序,他恰巧碰到一个字符串,需要 100 次交 换,可是他忘了吧这个字符串记下来,现在找不到了。
请帮助小蓝找一个只包含小写英文字母且没有字母重复出现的字符串,对 该串的字符排序,正好需要100 次交换。如果可能找到多个,请告诉小蓝最短的那个。如果最短的仍然有多个,请告诉小蓝字典序最小的那个。
题目链接
排序 - 蓝桥云课 (lanqiao.cn)https://www.lanqiao.cn/problems/598/learning/
提交结果截图
题目详细分析
- 【正序逆序判断】虽然题目没说是正序还是逆序,但是根据“对于字符串 lan 排序,只需要 1 次交换”,我们可以很容易指的是正序排序(正序排序需要1次交换成为'aln',而逆序交换需要2次交换才能成为‘nla’)。
- 【找规律】计算当字符串m长度为n时正序排序需要的最大次数c。要想正序排序所需的次数最大,当然是完全逆序的字符串了!-->我们只需要计算完全逆序的字符串正序排序所需的次数就可以找到规律了!当n = 1时,c = 0;当n = 2时,c = 1(如m = "ba"); 当n = 3时,c = 1+2(如m = "bac");...;故规律为
- 【得出结果】当n = 14时,c = 91,当n = 15时,c = 105,故至少需要n = 15,即字符串长度至少需要15。而完全逆序时为(14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)(用0代表a,1代表b,以此类推,这样可以避免出错),要让次序少5次即可得到100次,而有要让结果的字典序最小,当然是尽量降低最高位的字母的字典排序了!故顺序应该是(9 14 13 12 11 10 8 7 6 5 4 3 2 1 0)。
- 【输出结果】写一个简单的程序,用数组存储排序顺序,通过转换成字母输出,这样可以避免出错!
源代码
#include <iostream>
using namespace std;
char alp(int x)
{char res = x + 'a';return res;
}
int main()
{int N[15] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 9};for(int i = 14; i >= 0; i--)cout<<alp(N[i]);return 0;
}
答案
jonmlkihgfedcba
【2020蓝桥杯省赛】【填空题】排序(详解!)相关推荐
- 2020蓝桥杯省赛填空题【卡片】
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 小蓝有很多数字卡片,每张卡片上都是数字 00 到 99. 小蓝准备用这些卡片来拼一些数,他想从 11 开始拼出正整数,每拼一个 ...
- 递增序列-2019年蓝桥杯国赛填空题题目答案及分析
本文纯属记录作者做题时的思路作者纯属小白,可能有许多不正确地方,欢迎大家指点. [题目描述] 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 对于一个字母矩阵,我们称矩阵中的 ...
- 2021第12届蓝桥杯省赛 -- 填空题:试题B:直线
试题B:直线 问题描述 在平面直角坐标系中,两点可以确定一条直线.如果有多点在一条直线上, 那么这些点中任意两点确定的直线是同一条. 给定平面上 2 × 3 个整点(x,y)∣0≤x<2,0≤y ...
- 2021第12届蓝桥杯省赛 -- 填空题:试题A:卡片
试题A:卡片 问题描述 小蓝有很多数字卡片,每张卡片上都是数字 0 到 9. 小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了. 小蓝想知道自己 ...
- 第十三届蓝桥杯模拟赛填空题
- 小唐开始刷蓝桥(一)2020年第十一届C/C++ B组第二场蓝桥杯省赛真题
目录 一.门牌制作 二.既约分数 三.蛇形填数 四.跑步锻炼 五.七段码 六.成绩统计 七.回文日期 八.子串分值和 九.平面切分 十.字串排序 上一篇: 呆呆子,这就是小唐的第一篇啦! 下一篇: 小 ...
- 2020年第十一届C/C++ B组第二场蓝桥杯省赛真题
2020年第十一届C/C++ B组第二场蓝桥杯省赛真题 真题 第一题:门牌制作 第二题:既约分数 第三题:蛇形填数 第四题:跑步锻炼 第五题:七段码 第六题:成绩统计 第七题:回文日期 第八题:子串分 ...
- 3位水仙花数计算pythonoj_Python解答蓝桥杯省赛真题之从入门到真题
若发现此文章消失,则是在等待审核中,稍等一会儿即可显示,谢谢. 另外,我会尽量晚上上传更新题目. 此文章太长了,导致MD编辑器很卡,另写了一篇接续 传送门 Python解答蓝桥杯省赛真题之从入门到真题 ...
- 2017年第四八届C/C++ B组蓝桥杯省赛真题
2017年第八届C/C++ B组蓝桥杯省赛真题 真题 第一题:购物单 第二题:等差素数列 第三题:承压计算 第四题:方格分割 第五题:取数位 第六题:最大公共子串 第七题:日期问题 第八题:包子凑数 ...
- 2018年第九届C/C++ B组蓝桥杯省赛真题
2018年第九届C/C++ B组蓝桥杯省赛真题 真题 第一题:第几天 第二题:明码 第三题:乘积尾零 第四题:测试次数 第五题:快速排序 第六题:递增三元组 第七题:螺旋折线 第八题:日志统计 第九题 ...
最新文章
- ML之RFXGBoost:分别基于RF随机森林、XGBoost算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还)
- python速成一小时_Python学习|一小时快速入门python(一)
- dqn在训练过程中loss越来越大_DQN算法实现注意事项及排错方法
- vc mysql query_我要使用mysql_query()这个函数,在VC中需要做什么工作?
- c# async await异步方法
- PN结相关知识点(PN结原理)
- 文件服务器如何设置配额,文件服务器设置配额
- [转载] 360分布式存储系统Bada的设计和应用
- 4星|《千年金融史》:金融技术就是一个我们自己建造的时间机器
- 键盘上打出省略号的方法
- CTF实验找不到ssh2john
- 【论文笔记】气道树分割:A 3D UNet-Graph Neural Network for Airway Segmentation
- 用U盘安装系统 WinPE 安装操作系统
- 消防水监测系统解决方案
- 对于STM32的ADC芯片的思考
- 超详细的wireshark笔记(2)-wireshark的使用技巧
- 李永乐老师讲一个量子计算机,别再只知道罗翔了!网上最受欢迎的14位老师,个个让人“开天眼”!...
- 21个小故事,21个启示
- 计算机安全使用环境及要求吗,计算机安全使用环境及要求02
- sec和asec--正割和反正割函数
热门文章
- 监控系统存储服务器和磁盘阵列,监控存储服务器和磁盘阵列的区别
- 专访Stephen McNulty:成立40年的Micro Focus为何一直能引领创新
- 从 git bash 命令行中窥探人生
- PyTorch:RNN,TensorBoard,部署PyTorch,数据增强
- Springboot毕设项目大学生勤工俭学系统09i5rjava+VUE+Mybatis+Maven+Mysql+sprnig)
- windows使用/服务(7)电脑手机之间如何互传文件(华为分享)
- 2022年监理工程师案例分析考试每日一练及答案
- 转贴:闲谈GIS专业导向与个人定位问题
- javaweb物流信息发布管理平台
- 外语学习的真实方法及误区(转)