题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5281
贪心题目,但是看看我的博客里边相关贪心的题解实在是少的可怜,这里就写出来供大家一起探讨。
题意还是比较好理解的,这里有一个小小的坑点:枪的数量,和怪物的数量,不一定是相等的,所以我们这里要特殊处理一下。
reverse函数:http://blog.sina.com.cn/s/blog_6d79d83a0100wh95.html
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <iostream>
#include <ctype.h>
#include <iomanip>
#include <queue>
#include <stdlib.h>
using namespace std; int a1[],a2[]; int main()
{
int t;
scanf("%d",&t);
while(t--){
int n,m;
scanf("%d %d",&n,&m);
for(int i=; i<n; i++){
scanf("%d",&a1[i]);
}
for(int i=; i<m; i++){
scanf("%d",&a2[i]);
} sort(a1,a1+n);
reverse(a1,a1+n);
sort(a2,a2+m); long long sum=;
int min1=min(n,m);
for(int i=; i<min1; i++){
if(a1[i]>a2[i]){
sum+=a1[i]-a2[i];
}
}
printf("%lld\n",sum);
}
}