HDU - 4544 湫湫系列故事——消灭兔子(优先队列+贪心)
2024-08-30 10:30:24
题目:
最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏。
游戏规则很简单,用箭杀死免子即可。
箭是一种消耗品,已知有M种不同类型的箭可以选择,并且每种箭都会对兔子造成伤害,对应的伤害值分别为Di(1 <= i <= M),每种箭需要一定的QQ币购买。
假设每种箭只能使用一次,每只免子也只能被射一次,请计算要消灭地图上的所有兔子最少需要的QQ币。
思路:
每个箭有两个属性伤害和花费,这两个需要固定下一个来才能找出最小的花费。
既然是找最小的花费,那我们就优先确定下伤害来就可以,对血量和伤害进行从大到小排序,这样能杀死前边兔子的箭同样也能杀死后边的兔子,用一个优先队列先输出花费小的箭,计费,这样就解决了。
代码:
//#include <bits/stdc++.h>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
#define MAX 1000000000
#define FRE() freopen("in.txt","r",stdin) using namespace std;
typedef long long ll;
const int maxn = ;
int b[maxn],n,m;
struct Stone
{
int d;
ll p;
bool operator<(const Stone& rhs)const
{
return p>rhs.p;
}
}s[maxn]; bool cmp(int a,int b){ return a>b; }
bool cmd(Stone a,Stone b){ return a.d > b.d; } int main()
{
//FRE();
ios::sync_with_stdio(false);
while(cin>>n>>m)
{
for(int i=; i<n; i++)
cin>>b[i];
for(int i=; i<m; i++)
cin>>s[i].d;
for(int i=; i<m; i++)
cin>>s[i].p;
sort(b,b+n,cmp);//箭的伤害和兔子的血量从大到小排序
sort(s,s+m,cmd);
priority_queue<Stone> que;
ll ans = ;
bool ok = true;
for(int i=,j=; i<n; i++){
while(j<m && s[j].d>=b[i])//所有能杀死当前兔子的箭都入队列,这些箭一定能杀死后边的兔子
que.push(s[j++]);
if(que.empty())//所有的箭杀不死所有的兔子
{
ok = false;
break;
}
ans+=que.top().p;//计费
que.pop();
}
if(!ok) cout<<"No\n";
else cout<<ans<<endl;
}
return ;
}
最新文章
- Beta阶段项目展示
- centos7安装图片界面
- AngularJS作出简单聊天机器人
- Unity3D绑定button监听事件
- 控制反转(Inversion of Control)之我的理解
- 关于arraylist.remove的一些小问题。
- 方法字段[C# 基础知识系列]专题二:委托的本质论
- Node.js流
- 使用mailto在网页中链接Email地址
- SQL写操作 设置内容 (数组转字符串)
- Linux 系统应用编程——线程基础
- 远程执行shell脚本的小技巧
- git提交步骤
- visual c++如何显示行号
- ORACLE managed file(OMF)
- Solaris 11, gcc 的安装
- hadoop hadoop install (1)
- 总结: 《jQuery基础教程》 1-4章
- STL List::sort() 解析
- 在IIS服务上发布网站
热门文章
- 利用Redis Sentinel实现redis主从自动切换
- webpack -v显示的版本与package.json的devDependencies节点显示的webpack版本不一致的问题
- ArcGIS for JavaScript 3.9 本机IIS部署
- patch用法 (转载)
- SQL SELECT DISTINCT 语句 用法
- 每天学点linux命令之locate 与 find 命令
- MySQL+PHP配置 Windows系统IIS版
- 多个文本框点击复制 zClip (ZeroClipboard)有关问题
- ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第三天(非原创)
- AJPFX:如何保证对象唯一性呢?