题意:
某人G准备了m个题目,难度分别为b1,b2,b3,,,,,bm
他需要使用n个题目,要求难度分别为 a1,a2,a3,an
他有“特异功能”,可以使任意一个题目减低任意难度
给出n,m
【a】【b】
问:使用他准备的题目,同时使用“特异功能”,他还要再准备多少题目
题意抽象:
1、我们尽量使用他所准备的题目来形成n个题目
2、对于所有能直接使用的b[i]==a[j](1<=i<=m,1<=j<=n)
3、对于剩下的题目,降低难度使得b[x]-c==a[y](1<=x<=m,1<=y<=n)
4、对所有没有对应的准备好的a[u]计数,答案就是其总数
解题思路:
1、用map<int ,int >存储<a[i],x>——x是难度为C的题目的个数
2、输入b[x]的同时,在【a】中检索b[i]==a[j](1<=i<=m,1<=j<=n),有的话,使用,否则存储到优先队列pb中
3、检索map<int ,int >,将未准备的题目的难度值取出,存储到优先队列pa中
4、将所准备的题目进行适当的降低难度处理,能用的就用
5,收集答案,输出
提交结果:
| Feb 23, 2014 9:48:30 AM | | | GNU C++ | Accepted | 15 ms | 400 KB |
代码:
#include #include