在广袤安宁的原始森林中,快乐的蓝精灵们正在准备一年一度的蓝月亮节。而就在这欢喜忙碌的关头,他们的宿敌——邪恶的巫师格格巫和他的宠物阿兹猫闯入了蓝精灵的秘密领地。受到惊吓的蓝精灵四散而逃,其中可怜的笨笨则盲打误撞跑进了一个神秘的山洞,山洞中的守护神告诉笨笨它喜欢排好队的小朋友,换句话说蓝精灵们只要按照从矮到高排好队就可以从山洞中通过。

现在村庄里一共有n个蓝精灵,他们的身高为1~n的整数,不存在身高相同的蓝精灵。 你可以每次任意交换队伍中的蓝精灵位置,使他们的顺序变为严格升序。请你编写程序计算最少需要交换几次才能让蓝精灵们通过山洞,躲避格格巫的追捕?

输入格式:
第一行:一个正整数n(n<1000),表示蓝精灵的数量

第二行:n个正整数,用空格分开,表示目前蓝精灵的排列情况,每一个正整数表示该位置蓝精灵的身高。

输出格式:
输出一个正整数,表示至少交换多少次,才能帮助蓝精灵们通过山洞。

输入样例:
5
3 1 2 5 4

输出样例:
3
样例说明:
交换1号蓝精灵和2号蓝精灵使队伍变成1 3 2 5 4

交换2号蓝精灵和3号蓝精灵使队伍变成1 2 3 5 4

交换4号蓝精灵和5号蓝精灵使队伍变成1 2 3 4 5

交换方法不唯一,但可以得出该交换次数是最少的

常规做法:

n=int(input())
lst=list(map(int,input().split()))
count=[i for i in range(1,n+1)]
naa=0
for i in range(n):if lst[i]!=i+1:for j in range(n):if lst[j]==i+1:lst[i],lst[j]=lst[j],lst[i]naa+=1if lst==count:break
print(naa)

结合算法思想的做法:

n = eval(input())
l = list(map(int, input().split()))
sum = 0
for i in range(n):for j in range(i + 1, n):if l[i] > l[j] == min(l[i + 1:]):l[i], l[j] = l[j], l[i]sum += 1print(sum)

一个,两个,蓝精灵 (10 分)(Python)相关推荐

  1. 6-3 设计一个长方体类Cuboid (10 分)

    6-3 设计一个长方体类Cuboid (10 分) 要求:设计一个名为Cuboid的类表示长方体.这个类包括三个名为length.width和height 的double型数据域,它们分别表示长方体的 ...

  2. 戴尔 Wyse Thin 客户端设备受两个 CVSS 10分严重漏洞影响

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 医疗网络安全提供商 CyberMDX的研究人员称在戴尔 Wyse Thin 客户端中发现了两个严重漏洞,可导致攻击者在受影响设备上远程 ...

  3. 7-4 sdut-运输计费问题 (10 分)python

    这道题有点坑,做了好一会,才发现要用round函数,之前也算是考虑不周全,一厢情愿了,下回做题还是要心细,考虑全面才能更快的解决问题,思维不能出现漏洞. 某运输公司对用户计算运费.路程(S)越远,每公 ...

  4. 7-2 jmu-python-最佳身高 (10分) Python

    最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高).下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高. 输入格式: 输入第一行给出正整数N(≤10),为前来查询的用 ...

  5. python循环10次_开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择...

    开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择 "+.-.*"运算符,构成一个表达式, 让用户计算式子结果并输入结果,如果计算 ...

  6. 7-20 判断两个字符串是否为变位词 (10 分)如果一个字符串是 另一个字符串的重新排列组合,那么这两个字符串互为变位词。比如,”heart”与”earth”互为变位 词,”Mary”与”arMy

    7-20 判断两个字符串是否为变位词 (10 分) 如果一个字符串是 另一个字符串的重新排列组合,那么这两个字符串互为变位词.比如,"heart"与"earth" ...

  7. 1.9 编程基础之顺序查找 10 找最大数序列(5分) python

    http://noi.openjudge.cn/ch0109/10/ """1.9 编程基础之顺序查找 10 找最大数序列(5分) http://noi.openjudg ...

  8. 开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择

    开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择 "+.-.*"运算符,构成一个表达式, 让用户计算式子结果并输入结果,如果计算 ...

  9. 10行Python,搭建一个游戏AI | 视频教程

    昨天为大家推荐了三个Python视频,包含:<利用Python,用4分钟时间搭建一个情感分析系统>.<7行Python代码,搭建一个可以识花的机器学习APP>.<10行P ...

最新文章

  1. python PyQt5中文教程☞【第五节】PyQt5事件(Event)和信号(信号槽 Signals slots)
  2. gridcontrol 控件的用法
  3. 内地计算机科技学校,23所内地顶尖高校盘点!计算机学科哪家强?
  4. 猜数字游戏python程序用函数guesssecret_Python-三、函数
  5. java utf8 简繁转换 类库_Java封装简体繁体(香港台湾)转换工具
  6. 乐观锁的颗粒度_mysql「锁」
  7. docker启动tomcat容器并添置项目首页
  8. 一套键鼠控制多台电脑的使用方法,快收藏
  9. 【Oracle教程资源大合集】Oracle数据库免费学习资源汇总
  10. java mdb连接_[Java]如何连接一个带密码的mdb文件?
  11. html中让图片放大的代码,HTML5图片预览 放大(示例代码)
  12. 2017onsite比赛游记帖
  13. CKA-kubernetes 部署-hard-way-1.1-1.3
  14. 鸿雁召开智能家居新品发布会,智能面板等多款全屋智能新品亮相
  15. 听云java探针_性能监控工具的配置及使用 - 听云-Server
  16. 在线产品经理实习 任务三:给搜狐新闻24小时热点做一份产品说明文档
  17. EventBus原理与源码解析
  18. 超详细Openstack核心组件——Placement部署
  19. Krita学习——Qt学习笔记(一)
  20. 开关电源MOS管选型500V、600V、650V参数

热门文章

  1. Linux-环境变量配置
  2. PID闭环控制算法解析(最透彻)
  3. 抽样检验规范——多次(多轮)抽样的理解
  4. CISAW证书发证机构是哪里?权威性如何?
  5. Docker专题(二)-Docker安装与启动
  6. finalize 复活_为什么Sekiro的其他内容将在2020年复活
  7. IOS小组件(4-2):创建可配置小组件(动态修改配置数据)
  8. IoT高级设备检索——设备管理运维类
  9. python培训实习报告
  10. OM 、RAM、IROM、IRAM