算法设计与分析:田忌赛马


"""
问题描述:两千多年前的战国时期,齐威王与大将田忌赛马。双方约定约定每人各出300匹马,
并且在上、中、下3个等级中各选一匹进行比赛。由于齐威王每个等级的马都比田忌略强,
比赛的结果可想而知。现在双方各n匹马,依次派出一匹马进行比赛,每一轮获胜的一方将从输的一方得到200银币,
平局则不用出钱,田忌已知所有马的速度值并可以安排出场顺序,问他如何安排比赛获得的银币最多?输入描述:输入包含多个测试用例,每个测试用例的第1行是正整数n(n<=1000),表示马的数量;后两行分别是n个整数,表示田忌和齐威王的马的速度值;输入n=0结束。输出描述:每个测试用例输出一行,表示田忌获得的最多银币数。
问题表示:
n : 马的数量
a : 田忌的马
b :齐威王的马"""def solve():ans = 0while len(a):if a[-1] > b[-1]:  # 田忌最快的马比齐威王最快的马 快,两者比赛,田忌赢ans += 200del a[-1], b[-1]elif a[-1] < b[-1]:  # 田忌最快的马比齐威王最快的马 慢, 田忌输ans -= 200# 选择田忌最慢的马比齐威王最快的马比赛del a[0], b[-1]else:  # 田忌最快的马和齐威王最快的马一样快时if a[0] > b[0]:  # 田忌最慢的马比齐威王最慢的马快,田忌赢ans += 200del a[0], b[0]else:if a[0] < b[-1]:  # 田忌最慢的比齐王最快慢ans -= 200del a[0], b[-1]  # 平局 passprint("田忌获得的银币数为:", ans)if __name__ == "__main__":n = int(input("请输入n:"))a = list(map(int, input("田忌马的速度 请输入一组整数用空格隔开:").split(" ")))b = list(map(int, input("齐王马的速度 请输入一组整数用空格隔开:").split(" ")))a.sort()b.sort()solve()

运行结果:

Python-贪心算法 田忌赛马相关推荐

  1. 55天 - 贪心算法 - 田忌赛马问题 openjudge百炼 2287

    //模板#include <iostream> #include <cstdio> #include <string> #include <algorithm ...

  2. 贪心算法 田忌赛马问题

    贪心算法 田忌赛马问题 这个题目贪心的本质在于:*田忌只在有把握赢的情况下拿出快马和王拼,否则用最慢的马比掉王的快马最大程度削弱王的战斗力 贪心策略: 1,如果田忌的最快马快于齐王的最快马,则两者比. ...

  3. python贪心算法最短路径_dijkstra算法(贪心算法)——解决最短路径问题

    最短路径 给定一张带权图和其中的一个点(作为源点),求源点到其余顶点的最短路径 基本思想 1)源点u,所有顶点的集合V,集合S(S中存有的顶点,他们到源点的最短路径已经确定,源点u默认在S中),集合V ...

  4. 典型的贪心算法~ (田忌赛马 )

    1. 田忌赛马  典型的贪心算法~~自己木有考虑到贪心的第二步导致wa了好多次 算法分析 Problem Description: 给出2N组数据,分别表示田忌和齐威王的N匹马的速度,没进行一场比赛( ...

  5. python贪心算法几个经典例子_关于贪心算法的一些探讨、经典问题的解决和三种典型的贪心算法算法(哈弗曼,Kruskal,Prim)的Python实现。...

    贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 贪心算法不是对所有问题都能得到整体最优解,关键是 ...

  6. python换零钱_黄哥Python, 贪心算法解决换零钱问题

    下面的文字来源于维基百科 贪心算法(英语:greedy algorithm) 又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法.比如 ...

  7. 农夫过河——python贪心算法实现

    1.问题描述: 一个农夫在河的西岸带了一匹狼.一只羊和一棵白菜,他需要把这三样东西用船带到河的东岸.然而,这艘船只能容下农夫本人和另外一样东西.如果农夫不在场的话,狼会吃掉羊,羊也会吃掉白菜. 2.问 ...

  8. 会议室日程安排问题(python贪心算法)

    会议室日程安排问题(最少需要多少个会议室) 按照贪心算法,此问题可以得到最优解!原来是按结束时间排序,但这样的话并不是最少的会议室数(下面有反例)而要得到最少的会议室数,需要将议程时间按开始时间排序. ...

  9. Python贪心算法解决收银员找零问题

    场景描述 在超市结账时,假设只有1分.5分.1角.3角.5角.1元的硬币,如果需要找零钱,给定需要找的零钱数目,使收银员找给顾客的硬币数量最少,运行程序如图: 知识补充  贪心算法是指在当前问题求解中 ...

  10. python贪心算法最短路径_贪心算法2-单源最短路径

    1.问题分析 给定有向带权图G = (V, E),其中每条边的权是非负实数.此外,给定V中的一个顶点u,称为源点.现在要计算从源到所有其它各顶点的最短路径,这里的路径指的是路径上各边的权值之和. 求单 ...

最新文章

  1. RDKit | 化合物活性数据的不平衡学习
  2. 网页中添加QQ,msn留言按钮
  3. FPGA的设计艺术(18)如何使用Verilog中的数组对存储器进行建模?
  4. JAVA数据结构 线性表的链式存储及其实现
  5. 也许,这样理解 HTTPS 更容易
  6. [RHEL5企业级Linux服务攻略]--第1季 Linux服务器的搭建与测试
  7. 课堂练习——返回一个整数数组中最大子数组的和
  8. 利用武汉理工大学学校图书馆资源查论文 以使用中国知网查阅论文
  9. 科技爱好者周刊:第 86 期
  10. 农业农村部:发现生猪、野猪异常死亡应立即报告
  11. Pygame 打字游戏项目
  12. 微信第三方登陆实现-微信浏览器实现弹出提示授权非微信浏览器提供二维码
  13. 你看这雪花如此的美丽
  14. WIN10 困扰多时的屏幕亮度 终于可以调节了-完美 -更新2018年2月28日
  15. 项目 - Web地图开发【高德地图API】(一)
  16. 马上就博士毕业了,博士毕业论文外审结果回来了
  17. DrawIO怎么画出卡通效果的?
  18. 微信公众号编辑文章发布时,弹出,图文消息中含有敏感词
  19. SitePoint播客#106:不要成为面巾纸
  20. 程序员防内卷小游戏3之游戏打包

热门文章

  1. 【转】你所知道与不知道的游戏机发展史 60-90年代
  2. 网络骗术 索要佣金型
  3. xp重启计算机的快捷键,xp电脑关机重启快捷键如何使用
  4. d : 无法将“d”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
  5. html导航条背景颜色代码,div+css实现鼠标经过背景高亮的导航菜单代码
  6. 精英问题,大家没事可以做一做
  7. Windows XP 共享 Workgroup无法访问.您可能没有权限使用网络资源
  8. 用k-mer分析进行基因组调查:(六)用KmerGenie一步实现
  9. 基于btest.so的策略测试方案
  10. 运用EXCEL RAND RANK INDEX函数制作抽奖器