算法竞赛入门经典例题-勇者斗恶龙

原创 2015年07月06日 20:14:30
   最近学习算法竞赛入门经典-训练指南,于是在刷题的同时记录到博客上,以便加深印象,更好的记忆。

例题1.勇者斗恶龙
 你的王国里有一条n个头的恶龙,你希望雇佣一些骑士把它杀死(也就是砍掉所有的头)。村里有m个骑士可以雇佣,一个能力值为 x 的骑士可以砍掉恶龙一个直径不超过 x 的头,且需要支付 x 个金币。如何雇佣骑士才能砍掉恶龙所有的头,并且支付最小的金币?注意,一个骑士只能砍一个头并且仅能被雇佣1次

分析:要求是用最少的钱雇佣骑士杀掉所有恶龙,恶龙的数目肯定不得多于骑士的数目,因为每个骑士只能雇佣一次,就算一个骑士能杀掉所有的恶龙。先对每个骑士和龙的能力进行sort排序,然后遍历骑士,用cur表示斩杀掉的龙,每当一个骑士符合条件被雇佣,cur加1,当cur与龙的数目相等的时候就停止。

#include<cstdio>
#include<algorithm>
using namespace std;

const int maxn=20005;
int a[maxn],b[maxn];
int main(){ 
   int n,m;
   while(scanf("%d%d",&n,&m)==2&&n&&m){
    for(int i=0;i<n;i++)
       scanf("%d",&a[i]);
     for(int i=0;i<m;i++)
      scanf("%d",&b[i]);
    sort(a,a+n);
    sort(b,b+m);
    int cur=0;
    int cost=0;
    for(int j=0;j<m;j++){
       if(b[j]>=a[cur]){
         cost+=b[j];
         if(++cur==n)
           break;
       }     
    }
    if(cur<n)
      printf("Loowater is doomed!\n");
     else
      printf("%d\n",cost);
   }   
   return 0;
}

算法竞赛入门经典(第2版)习题2-4详解

#include #define MAXN 100 double a[MAXN]={0};int main() { int n,m,count=0; while(1) { ...
  • big_DreamerLzq
  • big_DreamerLzq
  • 2016年06月22日 10:17
  • 1084

算法竞赛入门经典(第二版)官网页面克隆【墙内用】

链接源地址:https://code.google.com/archive/p/aoapc-book/
  • qq_35504607
  • qq_35504607
  • 2017年03月02日 12:46
  • 762

算法竞赛入门经典例题-并查集

*例题5:有一些化合物,每个化合物都由两种元素组成的(每个元素用一个大写字母表示)。你是一个装箱的工人,从实验员那里按照顺序依次把一些简单化合物装到车上。但这里存在一个安全隐患:如果车上存在k个简单的...
  • u012881011
  • u012881011
  • 2015年07月14日 21:34
  • 535

算法竞赛入门经典第六章例题6-4 Broken Keyboard (a.k.a. Beiju Text) UVA - 11988

https://vjudge.net/problem/UVA-11988 #include #include using namespace std; #pragma warning(disable...
  • Bendaai
  • Bendaai
  • 2018年01月19日 20:33
  • 49

算法竞赛入门经典(第2版)习题5-7 打印队列 UVa12100

思路:用队列queue存储set< pair< int,int > >型的数据(优先级,位置),另外将优先级存储到vector中用于进行优先级的对比。#include #include #includ...
  • xiaoyiman5373
  • xiaoyiman5373
  • 2017年05月26日 14:50
  • 88

算法竞赛入门经典(第二版)-刘汝佳-第四章 函数与递归 例题+习题(15/16)

说明本文是我对第四章题目的练习总结,建议配合紫书——《算法竞赛入门经典(第2版)》阅读本文。 另外为了方便做题,我在VOJ上开了一个contest,欢迎一起在上面做:第四章contest 如果想直...
  • thudaliangrx
  • thudaliangrx
  • 2016年02月19日 22:43
  • 2364

算法竞赛入门经典(第二版)-刘汝佳-第七章 暴力求解法 例题(7/15)

说明本文是我对第七章15道例题的练习总结,建议配合紫书——《算法竞赛入门经典(第2版)》阅读本文。 另外为了方便做题,我在VOJ上开了一个contest,欢迎一起在上面做:第七章例题contest ...
  • thudaliangrx
  • thudaliangrx
  • 2016年03月16日 13:17
  • 1616

《算法竞赛入门经典训练指南》pdf

下载地址:网盘下载 基本介绍 编辑 内容简介 《算法竞赛入门经典:训练指南》题目多选自近年来ACM/ICPC区域赛和总决赛真题,内容全面,信息量大,...
  • cf406061841
  • cf406061841
  • 2017年05月14日 00:18
  • 3321

《算法竞赛入门经典2ndEdition》 例题3-4 猜数字游戏的提示(Master-Mind Hints, Uva340)

看了好久还是没看懂题,看了这位大哥(http://www.cppblog.com/rakerichard/archive/2011/04/09/143775.html)翻译的再去看了下题才理解了题意,...
  • OccupiedCSDN
  • OccupiedCSDN
  • 2015年11月27日 18:58
  • 771

算法竞赛入门经典:第五章 基础题目选解 5.5 高精度乘法

/* 输入:10 输出:3628800 高精度乘法: 关键: 1 设定初始值_size = 0;//记住,初始化的时候,应该置_size = 0,否则不能做,初始化不需要逐个设置,直接用me...
  • qingyuanluofeng
  • qingyuanluofeng
  • 2015年08月11日 11:07
  • 694
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法竞赛入门经典例题-勇者斗恶龙
举报原因:
原因补充:

(最多只允许输入30个字)