一、题目信息

The - Modcrab

简单翻译一下:Vova有生命值h1,每次攻击值为a1,每瓶药水恢复生命值c1;Modcrab有生命值h2,每次攻击值为a2。在每个关卡开始,Vova有两种选择,要么攻击怪兽Modcrab,要么喝一瓶药水(Modcrab的生命值允许超过h2),然后,如果战斗没有结束,Modcrab会攻击Vova。战斗结束的标志是Vova(或Modcrab)的生命值降至0,或者更低。

注:1、选择喝药水,Modcrab也会攻击Vova。2、攻击是有先后顺序的

二、算法描述

网上有一些描述“贪心策略证明”的方法是这么说的:

考察一个问题的最优解,证明可修改该最优解,使得其从贪心选择开始,然后用数学归纳法证明每一步都可以通过贪心选择得到最优解
1,假定首选元素不是贪心选择所要的元素,证明将首元素替换成贪心选择所需元素,依然得到最优解;
2,数学归纳法证明每一步均可通过贪心选择得到最优解

在这里,如果h1 > a2或者a1 >= h2,我们可以每次都选择攻击,直到条件不满足,才喝药水。根据证明贪心策略的方法,很明显这里符合贪心的条件。

三、算法实现

 #include<stdio.h>
#include<vector> int res[], cnt = ;
int main()
{
int h1, a1, c1, h2, a2;
scanf("%d%d%d", &h1, &a1, &c1);
scanf("%d%d", &h2, &a2);
memset(res, , sizeof(res));
while (h2 > )
{
if(h1 <= a2 && h2 > a1)
{
h1 += c1;
h1 -= a2;
res[++cnt] = ;
}
else
{
h1 -= a2;
h2 -= a1;
res[++cnt] = ;
}
}
printf("%d\n", cnt);
for (int i = ; i <= cnt; i++)
{
if (res[i] == ) printf("STRIKE\n");
if(res[i] == ) printf("HEAL\n");
}
return ;
}

The - Modcrab——使用贪心策略的更多相关文章

  1. LeetCode--Best Time to Buy and Sell Stock (贪心策略 or 动态规划)

    Best Time to Buy and Sell Stock Total Accepted: 14044 Total Submissions: 45572My Submissions Say you ...

  2. poj1328 Radar Installation(贪心 策略要选好)

    https://vjudge.net/problem/POJ-1328 贪心策略选错了恐怕就完了吧.. 一开始单纯地把island排序,然后想从左到右不断更新,其实这是错的...因为空中是个圆弧. 后 ...

  3. 【贪心策略】USACO 越野跑

    问题 H: 越野跑[贪心策略] [题面] 为了能在下一次跑步比赛中有好的发挥,贝茜在一条山路上开始了她的训练.贝茜希望能在每次训练中跑得尽可能远,不过她也知道农场中的一条规定:奶牛独自进山的时间不得超 ...

  4. Poj 1017 Packets(贪心策略)

    一.题目大意: 一个工厂生产的产品用正方形的包裹打包,包裹有相同的高度h和1*1, 2*2, 3*3, 4*4, 5*5, 6*6的尺寸.这些产品经常以产品同样的高度h和6*6的尺寸包袱包装起来运送给 ...

  5. E - 不爱学习的lyb HDU - 1789(贪心策略)

    众所周知lyb根本不学习.但是期末到了,平时不写作业的他现在有很多作业要做. CUC的老师很严格,每个老师都会给他一个DDL(deadline). 如果lyb在DDL后交作业,老师就会扣他的分. 现在 ...

  6. HDU-1052(贪心策略)

    Tian Ji -- The Horse Racing Problem Description Here is a famous story in Chinese history. "Tha ...

  7. BZOJ 1029: [JSOI2007]建筑抢修【优先队列+贪心策略】

    1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec  Memory Limit: 162 MBSubmit: 4810  Solved: 2160[Submit][Statu ...

  8. 【贪心策略】渡河(river)

    “假舟楫者,非能水也,而绝江河.”这句话说的是,借助渡船的人,不是会游水,却能横渡江河. 会游水的人反而不一定能顺利地横渡江河.由于江面风浪很大,他们必须潜泳渡河.这就必须用到氧气瓶.氧气瓶当然是出题 ...

  9. 51nod1673 树有几多愁 - 贪心策略 + 虚树 + 状压dp

    传送门 题目大意: 给一颗重新编号,叶子节点的值定义为他到根节点编号的最小值,求所有叶子节点值的乘积的最大值. 题目分析: 为什么我觉得这道题最难的是贪心啊..首先要想到 在一条链上,深度大的编号要小 ...

随机推荐

  1. Flutter实战视频-移动电商-35.列表页_上拉加载更多制作

    35.列表页_上拉加载更多制作 右侧列表上拉加载配合类别的切换 上拉加载需要一个page参数,当点击大类或者小类的时候,这个page就要变成1 provide内定义参数 首先我们需要定义一个page的 ...

  2. HDU - 4006 The kth great number multiset应用(找第k大值)

    The kth great number Xiao Ming and Xiao Bao are playing a simple Numbers game. In a round Xiao Ming ...

  3. SmartSql使用教程(3)——SmartSql中的事务,及AOP的使用

    一.引言 经过两章的铺垫,我们现在对SmartSql已经有了一定的了解,那么今天我们的主题是事务处理.事务处理是常用的一种特性,而SmartSql至少提供了两种使用事务的方法.一种是通过Reposit ...

  4. ThinkPHP3.2.3学习笔记5---模板(一)

    一.模板简介 此文中的学习笔记部分资料是来自于thinkphp官方文档,http://document.thinkphp.cn/manual_3_2.html#template 本章的内容主要讲述了如 ...

  5. day04 Calendar类

  6. 推荐 VS2010入门教程—鸡啄米

    http://www.jizhuomi.com/catalog.asp?tags=VS2010 推荐 VS2010入门教程—鸡啄米,真的非常使用和经典!

  7. python文件实现增删改查操作

    # coding = utf-8 import os import json import re ''' 本程序旨在将练习基础知识部分,包括: 列表,元组,字典,文件,函数,字符串等知识 实现的功能: ...

  8. laravel配合swoole使用总结

    最近对接硬件做了两个项目,用到了swoole 第一个是门禁系统,需要远程开门.离线报警.定时开门.离线刷卡等功能 1.远程开门: 目前用cli创建个临时客户端连接服务端发送命令,服务端处理完成后客户端 ...

  9. GYM 101889F(树状数组)

    bit扫描坐标套路题,注意有重复的点,莽WA了. const int maxn = 1e5 + 5; struct node { ll B, F, D; bool operator < (con ...

  10. LIS的简单应用:UVA-437

    上一次紫芝详细地介绍了动态规划中的经典问题LIS,今天我们抽出一个类似思想的简单题目进行实践练习. The Tower of Babylon(巴比伦塔) Perhaps you have heard ...