湫湫减肥 
  越减越肥! 
   
  最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏。 
  游戏规则很简单,用箭杀死免子即可。 
  箭是一种消耗品,已知有M种不同类型的箭可以选择,并且每种箭都会对兔子造成伤害,对应的伤害值分别为Di(1 <= i <= M),每种箭需要一定的QQ币购买。 
  假设每种箭只能使用一次,每只免子也只能被射一次,请计算要消灭地图上的所有兔子最少需要的QQ币。 

Input输入数据有多组,每组数据有四行; 
第一行有两个整数N,M(1 <= N, M <= 100000),分别表示兔子的个数和箭的种类; 
第二行有N个正整数,分别表示兔子的血量Bi(1 <= i <= N); 
第三行有M个正整数,表示每把箭所能造成的伤害值Di(1 <= i <= M); 
第四行有M个正整数,表示每把箭需要花费的QQ币Pi(1 <= i <= M)。

特别说明: 
1、当箭的伤害值大于等于兔子的血量时,就能将兔子杀死; 
2、血量Bi,箭的伤害值Di,箭的价格Pi,均小于等于100000。Output如果不能杀死所有兔子,请输出”No”,否则,请输出最少的QQ币数,每组输出一行。Sample Input

3 3
1 2 3
2 3 4
1 2 3
3 4
1 2 3
1 2 3 4
1 2 3 1

Sample Output

6
4 题解:

很裸的优先队列,将给出的攻击力和血量先从小到大排序,将箭压入优先队列里面,然后从血量数组的后面
开始遍历,每次取出攻击力大于等于它同时价格最小的箭即可。

 #include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <queue>
using namespace std;
#define N 100005
#define ll long long
int a[N];
struct arrow
{
int x;//伤害
int y;//花费
friend bool operator<(arrow a,arrow b)
{
return a.y>b.y;
}
}b[N];
bool cmp(arrow a,arrow b)
{
return a.x>b.x;
}
bool cmp1(int a,int b)
{
return a>b;
}
int main()
{
int n,m,i,j;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=;i<n;i++)
scanf("%d",&a[i]);
for(i=;i<m;i++)
scanf("%d",&b[i].x);
for(i=;i<m;i++)
scanf("%d",&b[i].y);
sort(a,a+n,cmp1);
sort(b,b+m,cmp);
j=;
long long sum=;
int flag=;
priority_queue<arrow> q;
for(i=;i<n;i++){
while(b[j].x>=a[i]&&j<m)
q.push(b[j++]);
if(q.empty()){
flag=;break;
}
sum+=q.top().y;
q.pop();
}
if(flag==)
printf("No\n");
else
printf("%lld\n",sum);
}
return ;
}

最新文章

  1. C#根据句柄改变窗体控件值
  2. 享元模式/Flyweight模式/对象结构型/设计模式
  3. JS设置弹出小窗口。
  4. background-origin和background-clip的区别
  5. iOS.ReactNative-3-about-viewmanager-uimanager-and-bridgemodule
  6. java 递归获取一个目录下的所有文件路径
  7. jQuery Mobile 移动开发中的日期插件Mobiscroll使用说明
  8. Cocos2d-x SpriteFrameCache的使用
  9. UINavigationController详解一(转)UIBarButtonItem
  10. [CF738A]Interview with Oleg(模拟)
  11. javaScript内置类Date,Math等
  12. 黄聪:让WordPress主题支持语言本地化(使用poedit软件实现中文翻译功能)
  13. svn: E175002: can not read HTTP status line
  14. How Tomcat Works(十一)
  15. C# word开发
  16. 理解Java机制最受欢迎的8幅图
  17. error BC31019 无法写入输出文件 未指定错误
  18. asp.net textbox控件基础
  19. The Beginning of the Graph Theory
  20. jacoco+ant安装部署篇(统计代码覆盖率,适用自动化测试)

热门文章

  1. Go 1.14 中 Cleanup 方法简介
  2. centos7配置Logstash同步Mysql数据到Elasticsearch
  3. Linux系统开机显示BusyBox v1.22.1 built-in shell(ash) 解决方法
  4. Lucene之索引库的维护:添加,删除,修改
  5. JS笔记之第二天
  6. Windows10设置系统参数
  7. Navicat Premium 12永久激活
  8. 【48】数据扩充(Data augmentation)
  9. 为实践javaweb项目,搭建了相应环境
  10. 解决树莓派鼠标延迟/迟滞问题-转CSDN博主“Deiki”-sunziren