资源介绍
田忌与齐王赛马,双方各有n匹马参赛(n<=100),每场比赛赌注为1两黄金,现已知齐王与田忌的每匹马的速度,并且齐王肯定是按马的速度从快到慢出场,现要你写一个程序帮助田忌计算他最好的结果是赢多少两黄金(输用负数表示)。
分析:先排序,齐王的马的速度放在数组a中,田忌的马的速度放在数组b中。本问题应用的算法是动态规划和贪心算法相结合解决的。从两人的最弱的马入手:
若田忌的马快,就让这两匹马比赛;
若田忌的马慢,干脆就让他对付齐王最快的马;
若两匹马的速度相等,这时有两种选择方案,或者它俩比赛,或者对付齐王最快的马。