题意:
     一个怪物有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杀怪相关推荐

  1. HDU 5281 Senior#39;s Gun 杀怪

    题意:给出n把枪和m个怪.每把枪有一个攻击力,每一个怪有一个防御力.假设某把枪的攻击力不小于某个怪的防御力则能将怪秒杀,否则无法杀死.一把枪最多仅仅能杀一个怪,不能用多把枪杀同一个怪.每杀一次怪能够得 ...

  2. 我的世界JAVA挂机杀怪有经验_5分钟教你打造mc最简单的刷经验机!挂机就能无限经验?...

    在<我的世界>中,萌新经常会走入这么一个误区:"有等级?那我多刷刷经验把等级升上去,是不是就能变厉害了?" 然而,mc中的等级提升并不会增加史蒂夫的任何属性,经验仅仅只 ...

  3. 设置杀怪KillMonBurstRate爆率、KillMonExpRate经验倍数

    KillMonBurstRate爆率 KillMonExpRate经验 KILLMONBURSTRATE 倍率(实际倍率除以100)有效时间(时间为0或者为空时表示在线一直有效) 参数3 为0时下线不 ...

  4. 传奇脚本-记录杀怪数量-克肝

    利用QFunction文件的杀怪字段,记录用户数据. 可读取.比较相应数据值,选择执行各个分支以达到克肝功能! [@OnKillMob] #IF #ACT CALCVAR HUMAN 杀怪数量 + 1 ...

  5. NIT-OJ-1411-恶魔杀怪-解题报告

    在魔兽世界里,猎手碰到了一个怪物,准备杀怪升级.此时猎手和怪物的血量分别为B1,B2 ,我们已知猎手对怪物的每次攻击伤害为a ,而怪物每次对猎手的伤害为b (攻击的伤害值,即为被攻击者血量减少的数值) ...

  6. LintCode 1683. 杀怪兽(队列)

    1. 题目 有 n 只怪兽和一个奥特曼,奥特曼和怪兽都有5个属性值. 当且仅当奥特曼的5个属性值都不小于怪兽时,奥特曼可以杀死怪兽. 当一个怪兽被杀掉时,这个怪兽的5个属性会增加到奥特曼身上. 请问奥 ...

  7. 我的世界JAVA挂机杀怪有经验_我的世界如何快速获得经验?

    唔居然没人讲到龙塔. 末影龙经验农场,绝对一流的效率. [机理] 首先,大家都知道末影龙死亡动画播放时那个经验得多哇.好,那我就让它反反复复地死,从而得到大量的经验. 如何反复死亡?利用区块的Load ...

  8. 《骑马与砍杀》:CRPG精神的另类复活

    这里面讲的CRPG,是更公认的computer role-playing game,即电脑角色扮演游戏的意思,而非指<骑马与砍杀>系列著名的联机MOD<cRPG>. 如果要评论 ...

  9. 七日杀服务器无限刷空投,七日杀空投作弊代码 | 手游网游页游攻略大全

    发布时间:2018-05-12 作为一款生存游戏确实非常优秀,各位玩家觉得有难度的,不妨试试使用控制台修改修改.这里小编给大家带来了控制台代码大全,感兴趣的玩家一起来看看吧. 开启作弊方法是在游戏中按 ...

最新文章

  1. 使用webpack构建多页应用
  2. TF-IDF算法百度附有代码 有解吧实现中文分词
  3. HDU2594——Simpsons’ Hidden Talents
  4. 红旗linux mysql_恢复 - 红旗Linux案例精选:Amanda集中备份实例详细讲解_数据库技术_Linux公社-Linux系统门户网站...
  5. 中国移动发布5G权威测评:华为Mate 20 X 以强劲性能拔得头筹
  6. iphone 原型工具
  7. Python 爬取了 121.3 万条大众点评,告诉你哪里的小龙虾才是一绝!
  8. ECCV2020 | CPNDet:Anchor-free两阶段的目标检测框架,详解
  9. 邻接矩阵转换为邻接表;邻接表转换为邻接矩阵
  10. 怎么删除服务中的mysql服务
  11. YYKit源码学习——YYMemoryCache
  12. 墙裂推荐9个在线图片压缩网站
  13. JQuery的选择器对控件ID含有特殊字符的解决方法
  14. JAVA音程_桌面应用|与 Linux 一起学习:学习音乐
  15. 电脑控制手机投屏同步声音
  16. 车路协同、智慧交管、自动驾驶场景应有尽有,智能交通行业实战课火爆开启...
  17. 华钜同创:亚马逊新品流量黄金期如何利用
  18. AI-DPL, you should know
  19. 论文《Depth Estimation From a Light Field Image Pair With a Generative Model》学习
  20. Ubuntu 12.04-12.10 Linux 3D桌面完全教程,显卡驱动安装方法,compiz特效介绍,常见问题解答

热门文章

  1. 机房墙面为什么要做保温?该怎么做?
  2. linux系统下的grep命令功能与正则表达式详解
  3. Java 6.编写类
  4. 201521123011 《java程序设计》 第9周学习总结
  5. [Github]watch和star的区别
  6. hihocoder 网络流二·最大流最小割定理
  7. 关于阿里面试的的一个小题
  8. 关于.h .lib .dll的总结
  9. [转载] 中文核心期刊目录(2008)
  10. Linq学习笔记(三)