田忌赛马

题目描述:

中国古代的历史故事“田忌赛马”是为大家所熟知的。话说齐王和田忌又要赛马了,他们各派出N匹马,每场比赛,输的一方将要给赢的一方200两黄金,如果是平局的话,双方都不必拿出钱。现在每匹马的速度值是固定而且已知的,而齐王出马也不管田忌的出马顺序。请问田忌该如何安排自己的马去对抗齐王的马,才能赢取最多的钱? N<=1000

解题过程:

1.首先直觉是贪心,想到3个贪心策略:

策略A:

田忌每次用最烂的马去和齐王最屌的马pk。(尽可能消耗齐王的强马)

反例是显然的,比如

田忌:1 2  3 4 4 5

齐王:3  4 4 4 6 7

按照此策略 出场顺序是 (1,7)(2,6)(3,4)(4,4)(4,4)(5,3)3败2平1胜;

而如果(1,7)(2,6)(3,4)(4,4)(4,3)(5,4)可以做到 3败1平2胜:

策略B:

时间: 2024-11-02 23:21:19

田忌赛马的相关文章

HDOJ-1052 田忌赛马

田忌赛马 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述: Here is a famous story in Chinese history. "That was about 2300 years ago. General Tian Ji was a high official in the country Qi. He likes to play horse racing with the king and others." "Both of T

C语言贪心(2)___田忌赛马(Hdu 1052)

Problem Description Here is a famous story in Chinese history. "That was about 2300 years ago. General Tian Ji was a high official in the country Qi. He likes to play horse racing with the king and others." "Both of Tian and the king have t

[codevs2181]田忌赛马

试题描述 中国古代的历史故事"田忌赛马"是为大家所熟知的.话说齐王和田忌又要赛马了,他们各派出N匹马,每场比赛,输的一方将要给赢的一方200两黄金,如果是平局的话,双方都不必拿出钱.现在每匹马的速度值是固定而且已知的,而齐王出马也不管田忌的出马顺序.请问田忌该如何安排自己的马去对抗齐王的马,才能赢取最多的钱? 输入 第一行为一个正整数n ,表示双方马的数量.第二行有N个整数表示田忌的马的速度.第三行的N个整数为齐王的马的速度 输出 仅有一行,为田忌赛马可能赢得的最多的钱,结果有可能为负

codevs 2181 田忌赛马

2181 田忌赛马 时间限制: 1 s 空间限制: 32000 KB 题目等级 :   钻石 Diamond 题目描述                     Description 中国古代的历史故事“田忌赛马”是为大家所熟知的.话说齐王和田忌又要赛马了,他们各派出N匹马,每场比赛,输的一方将要给赢的一方200两黄金,如果是平局的话,双方都不必拿出钱.现在每匹马的速度值是固定而且已知的,而齐王出马也不管田忌的出马顺序.请问田忌该如何安排自己的马去对抗齐王的马,才能赢取最多的钱? 输入描述   

[HDU1052]Tian Ji -- The Horse Racing(田忌赛马)

题目大意:田忌赛马问题,给出田忌和齐威王的马的数量$n$和每匹马的速度$v$,求田忌最多赢齐威王多少钱(赢一局得200,输一局扣200,平局不得不扣). 思路:贪心. 1.若田忌最慢的马可以战胜齐王最慢的马,那么就让它战胜那匹慢马,胜利场次加1.(田忌最慢马 > 齐王最慢马) 2.若田忌最慢的马不能战胜齐王最慢的马,那么它更加不能战胜其他的马,那就让它输给齐王最快的马,失败场次加1.(田忌最慢马 < 齐王最快马) 3.若田忌最慢的马与齐王最慢的马速度相等.此时,打平是错误的. 因为自己的快马很

codevs——2181 田忌赛马

2181 田忌赛马 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 中国古代的历史故事“田忌赛马”是为大家所熟知的.话说齐王和田忌又要赛马了,他们各派出N匹马,每场比赛,输的一方将要给赢的一方200两黄金,如果是平局的话,双方都不必拿出钱.现在每匹马的速度值是固定而且已知的,而齐王出马也不管田忌的出马顺序.请问田忌该如何安排自己的马去对抗齐王的马,才能赢取最多的钱? 输入描述 Input Description 第一行

hdoj 1052 Tian Ji -- The Horse Racing【田忌赛马】 【贪心】

思路:先按从小到大排序, 然后从最快的開始比(如果i, j 是最慢的一端, flag1, flag2是最快的一端 ),田的最快的大于king的 则比較,如果等于然后推断,有三种情况: 一:大于则比較,二等于在推断田的最慢的是不是比king的最快的慢,三小于则与king的最快的比較: Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe

田忌赛马Java解答

你一定听过田忌赛马的故事吧?     如果3匹马变成1000匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛.赢一局,田忌可以得到200两银子,输一局,田忌就要输掉200两银子,平局的话不输不赢. 请问田忌最多能赢多少银子? 关于输入:   输入包含多组测试数据,每组测试数据的第一行是一个整数n(1<=n<=1000),表示田忌和齐王都拥有n匹马.接下来一行是n个整数,表示田忌的马的速度,下一行也是n个整数,表示齐王的马的速度. 输入的最后以一个0表示结束. 关于输

.NET开发者不要再抱怨.NET工资低[田忌赛马]【一个刚入行不久的角度谈.NET工资】

最近博客园里面很多人都说.NET不行,其实你们说的.NET不行也就是说.NET的工资比不上Java,PHP,移动开发等 本人性格还没有修炼到淡定,所以下面可能屡有偏激狂妄之词,也请同仁多多海涵. 这篇博客是写给那些刚入.NET,同时喜欢.NET不准备转的人看的,搞好自己,相信自己!要转的自己转去吧!下面从头到尾都没有谁好说不好的!只是谈薪水问题! 咱们大多数人搞开发都是要赚钱养家的.我们都不说是为了中华软件而崛起的口号而编码,这样的口号我也喊不出来. 我们都是为了工资,为了赚钱养家.兴趣也是一部