HDU 5281 Senior's Gun
Senior's Gun
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 616 Accepted Submission(s): 241
She often carries n
guns, and every gun has an attack power a[i]
One day, Xuejiejie goes outside and comes across m
monsters, and every monster has a defensive power
b[j]
Xuejiejie can use the gun i
to kill the monster j
which satisfies b[j]≤a[i]
and then she will get a[i]−b[j]
bonus .
Remember that every gun can be used to kill at most one monster, and obviously every monster can be killed at most once.
Xuejiejie wants to gain most of the bonus. It's no need for her to kill all monsters.
T
indicates the number of test cases.
In each case:
The first line contains two integers n
m
The second line contains n
integers, which means every gun's attack power.
The third line contains m
integers, which mean every monster's defensive power.
1≤n,m≤100000
−10
1
2 2
2 3
2 2
1
题意:
有n把枪,m仅仅怪物。每把抢都有一个能量值。每一个怪物都有一个耗能值,如今用n把枪去打怪物,每把枪仅仅能用一次,怪物仅仅能打一次,用每i把枪打第j仅仅怪物得到能量值为a[i]-b[j],前提a[i]>=b[j],枪能够不用完,怪物也能够不打完,问最多能得多少的能量值。
解题:枚举用k把枪去打k仅仅怪物。那么每把枪都是最大能量值,每仅仅怪物都是耗能最少的。
<pre name="code" class="cpp">#include<stdio.h>
#include<algorithm>
using namespace std;
const int N = 100005;
bool cmp(int a,int b){
return a>b;
}
__int64 ans,a[N],b[N];
int main()
{ int T,n,m;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
for(int i=0; i<n; i++)
scanf("%I64d",&a[i]);
for(int i=0; i<m; i++)
scanf("%I64d",&b[i]);
sort(a,a+n,cmp);
sort(b,b+m);
int k=0;
ans=-(1<<29);
while(k<n&&k<m){
if(k!=0){
a[k]+=a[k-1];
b[k]+=b[k-1];
}
if(ans<a[k]-b[k])
ans=a[k]-b[k];
k++;
}
printf("%I64d\n",ans);
}
}
HDU 5281 Senior's Gun的更多相关文章
- HDU 5281 Senior's Gun 杀怪
题意:给出n把枪和m个怪.每把枪有一个攻击力,每一个怪有一个防御力.假设某把枪的攻击力不小于某个怪的防御力则能将怪秒杀,否则无法杀死.一把枪最多仅仅能杀一个怪,不能用多把枪杀同一个怪.每杀一次怪能够得 ...
- hdu 5281 Senior's Gun
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5281 Senior's Gun Description Xuejiejie is a beautifu ...
- HDU 5281 Senior's Gun (贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5281 贪心题目,但是看看我的博客里边相关贪心的题解实在是少的可怜,这里就写出来供大家一起探讨. 题意还 ...
- Bestcoder #47 B Senior's Gun
Senior's Gun Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Tot ...
- hdu 5282 Senior's String 两次dp
题链:http://acm.hdu.edu.cn/showproblem.php?pid=5282 Senior's String Time Limit: 2000/1000 MS (Java/Oth ...
- HDU 5280 Senior's Array
Senior's Array Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) T ...
- HDU 5280 Senior's Array 最大区间和
题意:给定n个数.要求必须将当中某个数改为P,求修改后最大的区间和能够为多少. 水题.枚举每一个区间.假设该区间不改动(即改动该区间以外的数),则就为该区间和,若该区间要改动,由于必须改动,所以肯定是 ...
- HDU 5281 BestCoder Round #47 1002:Senior's Gun
Senior's Gun Accepts: 235 Submissions: 977 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
- hdu 5280 Senior's Array
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5280 Senior's Array Description One day, Xuejiejie ge ...
随机推荐
- ajax post传值
一.字符串 $.ajax({ type: "POST", data: {"ID&quo ...
- SQL SERVER 2008 R2 自动备份并删除过期备份数据
我们的系统维护的过程中肯定需要对数据库进行定期的备份,但是如果定时手工备份的话,不但浪费时间,也不能保证每次都可以按时备份,所以自动备份成为了我们的不二选择,但是定时备份需要定期清理备份文件, ...
- SQL数据库的应用一(Day 24)
哈哈,又到了新的一周.我们也开始学习新的知识了,从今天开始学习SQL数据库的一些知识.今天主要讲了一些数据库.表的创建管理,和一些约束的定义使用.(这里使用的是SQL语句)下面我就具体总结一下. 总结 ...
- 用js捕捉鼠标连续点击三次事件怎么实现啊
var count = 0, timer; document.onclick = function(){ if(count < 2){ if(timer){ clearTimeout(timer ...
- BZOJ 3224: Tyvj 1728 普通平衡树(BST)
treap,算是模板题了...我中间还一次交错题... -------------------------------------------------------------------- #in ...
- Mysql的四种分区
mysql一共有四大分区分别为hash range list key 四个分区. 分区的字段需要时主键才可以成功 . 第一种 hash分区 第二张list分区 第三种 key分区 第四种 range分 ...
- 手动添加删除windows服务
1.使用sc命令创建服务 命令格式如: sc create [service name] [binPath= ] <option1> <option2>... 比如: sc c ...
- 5.6.1 Boolean类型
Boolean类型是与布尔值对应的引用类型.要创建Boolean对象,可以像下面这样调用Boolean构造函数并传入true或false值. var booleanObject=new Boolean ...
- c 语言 指针 与地址
1.如何实现交换两个数的值 void swap( int *a,int *b) { int tep=*a;//*a其实就是主函数a的值,a是主函数存a数值的地址. *a =*b; *b =tep; ...
- 高质量程序设计指南C/C++语言——C++/C程序设计入门(2)
*标准C规定,编译器只取前31个字符作为有效的标识符,而标准C++则取前255个字符作为有效的标识符. *把具有特殊含义的字符输出到终端上,尤其是当它们出现在普通字符串或格式控制字符串中时,一般来说有 ...