贪心算法 Problem C 1002 田忌赛马

本文介绍了一道ACM问题1002,即田忌赛马问题,探讨了如何通过贪心算法制定策略使田忌获得最多银子。在不同速度比较情况下,分别采取不同比试策略,例如当田忌最慢马慢于齐王时,与最快马比试等。代码使用C++实现,涉及多集合操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Problem C  Problem ID:1002 

简单题意:田忌与齐王赛马,每人的有相同数量的马匹,但每匹马上场且仅上场一次,每一场输掉,输的人给赢的人200两银子。给出两人的所有马匹的速度,求田忌所能获得的最多的银子。

 

解题思路形成过程:1.当田忌最慢的马比齐王最慢的马慢时,将田忌的这匹马与齐王最快的马进行比试(输200两); 
 2.当田忌最慢的马比齐王最慢的马快时,将这两匹马进行比试(赢200两);
 3.(重点)当田忌最慢的马与齐王最慢的马速度相同时,再分成两种情况进行考虑:
①若田忌最快的马比齐王最快的马慢或者速度相同时,用田忌最慢的马与齐王最快的马进行比试。因为此时虽然会输掉,但是田忌最快的马将很有可能赢得将来的比赛,且后面田忌还很有可能可以赢得此时齐王最慢的马,这样收益最大。(注意:田忌最慢的马不一定比齐王最快的马慢!比如测试样例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值