最大收益(贪心策略)

题目:

 

 

思想:

每次用威力最大的枪打最弱的小怪

 

解答:

/*
-------------------------------------------------
   Author:       wry
   date:         2022/3/1 17:10
   Description:  test
-------------------------------------------------
*/

#include <bits/stdc++.h>

using namespace std;

const int MAXN = 1000+10;

int gun[MAXN];
int monster[MAXN];

bool compare(int &a,int &b) {
    return a>b;
}

int main() {
    int caseNumber;
    int n,m;   //n个枪,m个怪
    cin >> caseNumber;
    while (caseNumber--) {
        cin >> n >> m;
        for (int i=0;i<n;i++) {
            cin >> gun[i];
        }
        for (int i=0;i<m;i++) {
            cin >> monster[i];
        }
        sort(gun,gun+n,compare);    //从大到小
        sort(monster,monster+n);     //从小到大
        int i=0;
        int money=0;
        while (i<n && i<m) {
            if (gun[i]-monster[i]<=0) {
                break;
            }
            else {
                money += gun[i]-monster[i];
                i++;
            }
        }
        cout << money << endl;
    }
    return 0;
}

 

posted @ 2022-03-03 15:43  火星架构师  阅读(199)  评论(0)    收藏  举报