题目大意:给出田忌和王的 N 匹马,安排赛马顺序使得得分最多,赢一场+200,输一场-200...
分析:我贪心了好久都是WA的= =.. 主要是没有想明白思路,怎样才能得到最大收益,总觉得像是DP,事实证明DP可以做,不过空间耗费大,时间比贪心慢10倍吧0.0
思路一:我们当前的最快的马比王的最快马慢的时候,显然,我们需要用最慢的马来和王最快的马比。
思路二:我们当前的最快的马比王的最快马快的时候,直接比...
思路三:我们当前的最快的马和王的最快马一样快的时候,我们这个时候需要比较一下我们最慢的马的价值:
1.我们最慢的马比王最慢的马快,直接比,获得最大的收益。
2.我们最慢的马比王最慢的马慢或者相等,那我们把最慢的马和王最快的马比,获得最大收益,注意判断我们最慢的马是否和王最快的马速度一样0.0、
代码如下:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
int a[1200],b[1200];
bool vis[1200];
int main(){
int n;
while (~scanf("%d",&n),n){
for (int i=1;i<=n;i++) scanf(&