HDU 4544 湫湫系列故事——消灭兔子 (优先队列)
2024-10-18 13:22:52
湫湫减肥
越减越肥!
最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏。
游戏规则很简单,用箭杀死免子即可。
箭是一种消耗品,已知有M种不同类型的箭可以选择,并且每种箭都会对兔子造成伤害,对应的伤害值分别为Di(1 <= i <= M),每种箭需要一定的QQ币购买。
假设每种箭只能使用一次,每只免子也只能被射一次,请计算要消灭地图上的所有兔子最少需要的QQ币。
越减越肥!
最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏。
游戏规则很简单,用箭杀死免子即可。
箭是一种消耗品,已知有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 ;
}
最新文章
- C#根据句柄改变窗体控件值
- 享元模式/Flyweight模式/对象结构型/设计模式
- JS设置弹出小窗口。
- background-origin和background-clip的区别
- iOS.ReactNative-3-about-viewmanager-uimanager-and-bridgemodule
- java 递归获取一个目录下的所有文件路径
- jQuery Mobile 移动开发中的日期插件Mobiscroll使用说明
- Cocos2d-x SpriteFrameCache的使用
- UINavigationController详解一(转)UIBarButtonItem
- [CF738A]Interview with Oleg(模拟)
- javaScript内置类Date,Math等
- 黄聪:让WordPress主题支持语言本地化(使用poedit软件实现中文翻译功能)
- svn: E175002: can not read HTTP status line
- How Tomcat Works(十一)
- C# word开发
- 理解Java机制最受欢迎的8幅图
- error BC31019 无法写入输出文件 未指定错误
- asp.net textbox控件基础
- The Beginning of the Graph Theory
- jacoco+ant安装部署篇(统计代码覆盖率,适用自动化测试)
热门文章
- Go 1.14 中 Cleanup 方法简介
- centos7配置Logstash同步Mysql数据到Elasticsearch
- Linux系统开机显示BusyBox v1.22.1 built-in shell(ash) 解决方法
- Lucene之索引库的维护:添加,删除,修改
- JS笔记之第二天
- Windows10设置系统参数
- Navicat Premium 12永久激活
- 【48】数据扩充(Data augmentation)
- 为实践javaweb项目,搭建了相应环境
- 解决树莓派鼠标延迟/迟滞问题-转CSDN博主“Deiki”-sunziren