田忌赛马问题
一、【问题】
田忌赛马问题,双方各有5匹马。已知田忌马马速a[5]={92 83 71 65 60},齐威王马的马速b[5]={ 95 87 74 70 59},每赢一场得200银币,问田忌可赢( )银币?
A.
400
B.
600
C.
800
D.
1000
【正确答案】:C
二、【问题解析】
将a、b数组进行递增排序,采用常识性的贪心思路,分为以下几种情况
(1)田忌最快的马比齐威王最快的马快,即a[rithta]>b[rightb],则两者比赛,田忌赢
(2)田忌最快的马比齐威王最快的马慢,即a[rithta]<b[rightb],则田忌选择其最慢的马与齐威王最快的马比赛,田忌输。
(3)田忌最快的马与齐威王最快的马速度相同,即a[rithta]=b[rightb]
,又分为以下三种情况
①田忌最慢的马比齐威王最慢的马快,即a[lefta]>b[leftb],则两者比赛(两个最慢的马比赛),田忌赢。
②田忌最慢的马比齐威王最慢的马慢,即a[lefta]<b[leftb],并且田忌最慢的马比齐威王最快的马慢,即a[lefta]<=b[leftb]且a[lefta]<b[rightb],则选择田忌最慢的马与齐威王最快的马比赛,田忌输。