样例是真的水
思路: 这个其实很容易想到田忌赛马的故事,而田忌赛马本质上就是贪心…所以这道题利用贪心+模拟即可;
分析: 我们可以把斯瓦斯特和对手的技能值都存进数组里面,然后升序排序.有以下三种情况:
1.斯瓦斯特最弱的人比对手最弱的技能值要大,那么赢的场数+1
2.斯瓦斯特最弱的人比对手最弱的技能值还要少,此时用最弱的去消耗对手最强的那个
3.由前面两种很容易想到第三种就是二者最弱的技能值是一样的,那么又有接下来的三种情况:(以下三种均在满足3.的情况下)
(1):斯瓦斯最强的人比对手技能点要多,那么赢的场数+1
(2):斯瓦斯最强的人比对手最强的技能点少,那么用斯瓦斯最弱的一个去消耗对手最强的
(3):斯瓦斯最强的人和对手最强的技能点相等,同样用(2)中的方法. 其实也就两种
注意:用四个变量来维护最强和最弱的人;
代码:
#include <bits/stdc++.h>
#define rep for(int i=0;i<n;i++)
#define repn for(int i=1;i<=n;i++)
#define ll long long
#define pb push_back
using namespace std;
const int maxn