UVa 1556 1344

UVa 1556

解法:建一个森林然后按照顺序输出,每个节点都有一个名字和儿子指针,输出的话按照要求遍历就可以了,输入比较麻烦,我的方案是读字符串遇到斜杠就停下来,然后进行加入的操作。

 

UVa 1344

很经典的题目,看了题解。贪心不解释,先将马的实力排序。目标是让田的差马尽可能地消耗掉赵的好马。从两边的第一匹马开始,若田<赵则去跟赵的最后一匹马拼掉,否则获胜而且是最小代价。关键是两匹马实力相同时很难处理。举个例子

田 10 100

王 10 200

田应该去跟王的好马拼掉还是先平一局再说呢?

这个例子里第一种选择较好

再来一个

10 200

10 100

第二种好

分析如果田目前的最强马比赵的最强马强,则第二种比较好,也就是消耗掉两边的最强马,不要让当前马比掉。否则的话,就用当前马和赵的最强马拼掉。但不要把田的最强马和赵的当前马拼掉,因为完全可能田有更弱的马战胜赵的当前马。如果两边的最强马还是一样的实力呢?照样拼掉。

 

 

 

你可能感兴趣的:(UVa 1556 1344)