题目:

最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏。 
游戏规则很简单,用箭杀死免子即可。 
箭是一种消耗品,已知有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 ;
}

最新文章

  1. Beta阶段项目展示
  2. centos7安装图片界面
  3. AngularJS作出简单聊天机器人
  4. Unity3D绑定button监听事件
  5. 控制反转(Inversion of Control)之我的理解
  6. 关于arraylist.remove的一些小问题。
  7. 方法字段[C# 基础知识系列]专题二:委托的本质论
  8. Node.js流
  9. 使用mailto在网页中链接Email地址
  10. SQL写操作 设置内容 (数组转字符串)
  11. Linux 系统应用编程——线程基础
  12. 远程执行shell脚本的小技巧
  13. git提交步骤
  14. visual c++如何显示行号
  15. ORACLE managed file(OMF)
  16. Solaris 11, gcc 的安装
  17. hadoop hadoop install (1)
  18. 总结: 《jQuery基础教程》 1-4章
  19. STL List::sort() 解析
  20. 在IIS服务上发布网站

热门文章

  1. 利用Redis Sentinel实现redis主从自动切换
  2. webpack -v显示的版本与package.json的devDependencies节点显示的webpack版本不一致的问题
  3. ArcGIS for JavaScript 3.9 本机IIS部署
  4. patch用法 (转载)
  5. SQL SELECT DISTINCT 语句 用法
  6. 每天学点linux命令之locate 与 find 命令
  7. MySQL+PHP配置 Windows系统IIS版
  8. 多个文本框点击复制 zClip (ZeroClipboard)有关问题
  9. ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第三天(非原创)
  10. AJPFX:如何保证对象唯一性呢?