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 ...
随机推荐
- c++:一个辅助类让内存泄漏现原形!
前言 对于c++而言,如何查找内存泄漏是程序员亘古不变的话题:解决之道可谓花样繁多.因为最近要用到QT写程序,摆在我面前的第一个重要问题是内存防泄漏.如果能找到一个简单而行之有效的方法,对后续开发大有 ...
- OWASP TOP 10 详解
OWASP--开放式web应用程序安全项目 参考文献:袁鸣凯.OWASP Top 10十大风险 – 10个最重大的Web应用风险与攻防.2016-9-18. https://blog.csdn.n ...
- Java小tips之命令行传参
在命令行运行主函数时,后缀字符串,则会储存在args[]数组中,这种方法可以在程序运行时,借助Main函数传参 主类书写不规范见谅 ```java public class hello{ public ...
- Python工程师学习之旅
1.Python软件开发基础 1.Linux操作系统2.Docker基础3.Python基础语法4.Python字符串解析5.Python正则表达式6.Python文件操作7.Python 模块8.P ...
- ZooKeeper 基本概念并介绍RPC中Netty和Zookeeper的使用
前言 ZooKeeper 是一个分布式协调服务,可用于服务发现,分布式锁,分布式领导选举,配置管理等.Zookeeper提供一个类似Linux文件系统的属性结构,每个节点可存储少量的内存文件,并提供每 ...
- 翻译:《实用的Python编程》04_04_Defining_exceptions
目录 | 上一节 (4.3 特殊方法) | 下一节 (5 对象模型) 4.4 定义异常 用户可以通过类实现自定义异常: class NetworkError(Exception): pass **异常 ...
- C# 应用 - 使用 HttpClient 发起 Http 请求
1. 需要的库类 \Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Net.Http.dll System.N ...
- Androi Studio 之 LinearLayout
LinearLayout •常用属性 •注意事项 当 android:orientation="vertical" 时, 只有水平方向的设置才起作用,垂直方向的设置不起作用 a ...
- 一本关于HTTP的恋爱日记
1991年 8月 我叫客户端,英文名字 client. 她叫服务端,英文名字 server. 这一年,我们出生了. 是的,我们都是90后. 我爱她,可是她却远在天边. 为了和她可以互诉衷肠,我同时发明 ...
- Class类文件结构--访问标志
访问标志的位置:在常量池结束之后的两个字节(16位)表示访问标志access_flags. 访问标志的作用:用于标识类或者接口层次的访问信息:比如该Class是类还是接口,是否为public类型.是否 ...