闲话
目前题解是洛谷 rk1 ✌😛✌
当时去考了这个四级,这道题还是想了一会的,最后还是做出来了。觉得这题挺有意思的。
正文
这道题嘛…
知道田忌赛马小故事的就知道,这个故事的核心思路就是拿自己较慢的马去对战别人较快的马。我把这种马在下文称作“炮灰”。
我们先来看样例给出的:
如果多一点马?
我的思路:给两个序列从小到大排序,如果我们当前马还没有别人当前最慢的马快,那就去当炮灰(与当前还没有被对战的地敌方的最快的马进行战斗!),因为不这样的话这匹马产生的贡献会小很多。否则就去当前最慢的马那里和它对战。
但是由于炮灰这个操作并不会造成什么影响,只需要跳过当前马就行了。所以可以在这次循环啥都不执行。我们只需要执行当这个马速度大于田忌当前最慢的马的时候去和它对战就行了。
总结:
- 对我们和田忌的马的速度进行从小到大排序。
- 用两个指针 i i i, j j j 分别代表我们的马和田忌当前最慢的马的下标。
- 如果我们的第 i i <