UVA11292杀怪
题意:
一个怪物有N个头,每个头都有半径,然后有M个骑士,每个骑士能砍掉半径小于等于
X[i]的头,花费为X[i],并且一个骑士只能用一次,问砍掉怪物所有头的最小花费。
思路:
比较简单的贪心题,我是直接把头和骑士都放在一起,然后从大到小排序下,如果
权值一样的让骑士在前面,然后开始枚举每一个点,如果当前点是骑士,那么直接进栈,如
果不是骑士,那么就从栈里取出一个,这个肯定是最省钱而且肯定可以砍掉这个头的,如果
该从栈里取东西的时候栈里空了,那么就完不成任务了。
#include<stack>
#include<stdio.h>
#include<algorithm>
#define N 20000 + 20000 + 5
using namespace std;
typedef struct
{
int x ,k;
}NODE;
NODE node[N];
bool camp(NODE a ,NODE b)
{
return a.x > b.x || a.x == b.x && a.k > b.k;
}
int main ()
{
int n ,m ,i ,Ans ,ss;
while(~scanf("%d %d" ,&n ,&m) && n + m)
{
for(i = 1 ;i <= n ;i ++)
scanf("%d" ,&node[i].x) ,node[i].k = 0;
for(i = 1 ;i <= m ;i ++)
scanf("%d" ,&node[i+n].x) ,node[i+n].k = 1;
sort(node + 1 ,node + n + m + 1 ,camp);
ss = 0;
if(m < n) Ans = 0;
else
{
stack<int>sk;
for(i = 1 ;i <= n + m ;i ++)
{
if(node[i].k) sk.push(node[i].x);
else
{
if(sk.empty()) break;
else
{
ss += sk.top();
sk.pop();
}
}
}
if(i == n + m + 1) Ans = 1;
else Ans = 0;
}
Ans ? printf("%d\n" ,ss) : puts("Loowater is doomed!");
}
return 0;
}
UVA11292杀怪的更多相关文章
- 2159 ACM 杭电 杀怪 二维费用的背包+完全背包问题
题意:已知经验值,保留的忍耐度,怪的种数和最多的杀怪数.求进入下一级的最优方案. 思路:用二维费用的背包+完全背包问题 (顺序循环)方法求解 什么是二维费用的背包问题? 问题: 二维费用的背包问题是指 ...
- HDU 5281 Senior's Gun 杀怪
题意:给出n把枪和m个怪.每把枪有一个攻击力,每一个怪有一个防御力.假设某把枪的攻击力不小于某个怪的防御力则能将怪秒杀,否则无法杀死.一把枪最多仅仅能杀一个怪,不能用多把枪杀同一个怪.每杀一次怪能够得 ...
- HDU2159 二维完全背包
FATE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- HDU-2159FATE(二维完全背包)
FATE Problem Description 最 近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务.久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完 ...
- HDU 2159---FATE---带限制的完全背包
HDU 2159 Description 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务.久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一 ...
- hdu2159
#include<bits/stdc++.h> #define MAX 155 using namespace std; struct Node { int exp; int pat; } ...
- HDU 1026 (BFS搜索+优先队列+记录方案)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1026 题目大意:最短时间内出迷宫.迷宫里要杀怪,每个怪有一定HP,也就是说要耗一定时.输出方案. 解 ...
- 转载:hdu 动态规划题集
1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包(放大100000倍化为整数): ...
- HDU 2159 FATE(二维费用背包)
FATE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
随机推荐
- 前端学习 node 快速入门 系列 —— 初步认识 node
其他章节请看: 前端学习 node 快速入门 系列 初步认识 node node 是什么 node(或者称node.js)是 javaScript(以下简称js) 运行时的一个环境.不是一门语言. 以 ...
- Python——input与raw_input的区别
区别一: raw_input():python2版本 input():python3版本 区别二: raw_input()不管是输数字还是字符串,结果都会以字符串的形式展现出来 input()则是 ...
- OWASP TOP 10 详解
OWASP--开放式web应用程序安全项目 参考文献:袁鸣凯.OWASP Top 10十大风险 – 10个最重大的Web应用风险与攻防.2016-9-18. https://blog.csdn.n ...
- [通达OA] RCE + Getshell
跟着大佬轻松复现:https://github.com/jas502n/OA-tongda-RCE 通达OA下载:https://www.tongda2000.com/download/2019.ph ...
- Mysql被黑客攻击了?一定要注意一点,不要关闭mysql服务
因为mysql没有关闭的情况,可以从缓存里面获取到数据,如果关闭了只能从文件里面去获取数据了,会大大加大恢复难度
- JAVA使用Collator对中文排序
首先创建一个集合 public static List<String> init() { List<String> list = new ArrayList<String ...
- 推荐模型DeepCrossing: 原理介绍与TensorFlow2.0实现
DeepCrossing是在AutoRec之后,微软完整的将深度学习应用在推荐系统的模型.其应用场景是搜索推荐广告中,解决了特征工程,稀疏向量稠密化,多层神经网路的优化拟合等问题.所使用的特征在论文中 ...
- 攻防世界 reverser secret-galaxy-300
secret-galaxy-300 school-ctf-winter-2015 运行程序 完全没有flag的身影呀 ida查看字符串 也没有相关信息 动态调试,看运行后内存信息 发现了一串字符 al ...
- 认清 React 的useState逻辑
useState运行过程解析 function App() { const [n, setN] = useState(0); //使用 myUseState() return ( <div> ...
- Java中的集合List - 入门篇
前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的集合List - 入门篇>,希望对大家有帮助,谢谢 简介 说实话,Java中的集合有很多种,但是这里作为入门级别,先简单介绍第一种 ...