1191: 冰法斗神龙

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 199  Solved: 15

Description

强大的冰魔法师zz一路过关闯将,终于独自一人杀到了神龙面前。神龙的血量值为HP,正常状态下每秒进行一次攻击,伤害值为DAMAGE。zz精通n种瞬发冰控魔法(在同一秒内,zz发动的冰魔法要比神龙的攻击快上一点),第i(1<=i<=n)种魔法伤害值为damage[i],并使神龙进入冰冻状态(神龙在冰冻状态下不会进行攻击,且如果神龙在冰冻状态下再次受到冰魔法的攻击,则冰冻时间累加),维持freeze[i]秒,使用完后有cd[i]秒的时间不得使用任何魔法。当zz与神龙有一方的血量值小于等于0时,即判定那一方死亡。zz想杀神龙,但是又怕死,所以请你帮他判断一下以他现有的血量hp和他的技能,能否强杀神龙。

Input

第一行输入整数T代表T组数据,T<=30

输入数据的第一行为2个整数HP(0<HP<10^8) DAMAGE (0<DAMAGE<10^8) 分别代表神龙的血量值和神龙每次的攻击值。

第二行也是2个整数hp(0<hp<10^8),n(1<=n<=1000000) 分别代表zz的血量以及zz会的魔法种类数。

第三行到n+2行每行均为3个整数damage[i](0<=damage<=100),freeze[i](0<=freeze[i]<=100),cd[i](1<=cd[i]<=100),(1<=i<=n)分别代表第i种魔法的伤害值,冰控时间,冷却时间。

Output

输出只有一行YES或NO,分别代表能杀死神龙和不能杀死神龙。

Sample Input

2 20 4 10 2 3 1 2 5 0 1 20 3 10 2 3 1 2 5 0 1

Sample Output

NO YES

HINT

Source

[Submit][Status][Web Board]

http://www.gdutcode.sinaapp.com/problem.php?id=1191

考虑到:只可能是一种技能最优,不可能你用着这个技能,然后用另一个,再用回来这个,这样是不可能最优的。但可能是若干次A技能,然后选一次伤害最大的技能来用,最后一次用最大值来冲一冲。

然后有些情况是直接YES的。

1、如果wait[i] - fre[i]等于0,就是能一路压着神龙,而且这个的攻击力不能等于0

2、如果wait[i] - fre[i]小于0,就是能争取自己的时间了,这时也不是直接是YES的,还要看看mx是否大于0

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;#include <iostream>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <string>
const int maxn = 1000000 + 20;
int att[maxn];
int fre[maxn];
int wait[maxn];
void work() {int HP, hurt;int MYHP, m;scanf("%d%d%d%d", &HP, &hurt, &MYHP, &m);int mx = -inf;for (int i = 1; i <= m; ++i) {scanf("%d%d%d", &att[i], &fre[i], &wait[i]);mx = max(mx, att[i]);}int need = MYHP / hurt + ((MYHP % hurt) > 0);for (int i = 1; i <= m; ++i) {int dis = wait[i] - fre[i];if (dis == 0 && att[i] == 0) continue;if (dis == 0 && att[i] != 0) {printf("YES\n");return;}if (dis < 0 && mx != 0) {printf("YES\n");return;}if (dis < 0 && mx == 0) {continue;}int how = need / dis + ((need % dis) > 0);
//        printf("%d*****\n", how);int cut = (how - 1) * att[i] + mx;if (cut >= HP) {printf("YES\n");return;}
//        cout << cut << endl;
    }printf("NO\n");return;
}int main() {
#ifdef localfreopen("data.txt","r",stdin);
#endifint t;scanf("%d", &t);while (t--) work();return 0;
}

View Code

不要看题解了,看这个数据

1
100 1
20 3
49 0 17
50 0 100
1 0 1

我的wa

转载于:https://www.cnblogs.com/liuweimingcprogram/p/6065254.html

1191: 冰法斗神龙 暴力枚举相关推荐

  1. 《贪心算法》— NYOJ 1309 冰法斗神龙

    题目1309 题目信息 运行结果 本题排行 讨论区 冰法斗神龙 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 强大的冰魔法师zz一路过关闯将,终于独自一人杀到了神龙面前 ...

  2. 暴力枚举法解决“炸弹人”游戏

    题目:最近小付迷恋上一款"炸弹人"游戏,在过关关卡中,他要在空地放置炸弹,使得被消灭的人最多,现在,小付请你帮他写一个程序,看看放于何处消灭的敌人最多.(炸弹可以消灭同一列的敌人和 ...

  3. 最大字段和 冲出暴力枚举

    这篇解题报告是对我最近一些题的总结,里面的代码都是我解题,优化,再优化的过程的记录,记录了自己对算法的完善与优化思路,还有对编程哲学的理解:do it,do it well. 很感谢孙老师您,让自己可 ...

  4. 一道暴力枚举题Win32版本示例

    来看一个问题:该问题的解法是 暴力枚举:这大概是ACM方面的:名称叫火柴棒等式: 给你n根火柴棍,你可以拼出多少个形如"A+B=C"的等式?等式中的A.B.C是用火柴棍拼出的整数( ...

  5. 火柴棒游戏(暴力枚举)C++

    暴力枚举 P1149 [NOIP2008 提高组] 火柴棒等式 题目描述: 给你n根火柴棍,你可以拼出多少个形如"A+B=CA+B=C"的等式?等式中的AA.BB.CC是用火柴棍拼 ...

  6. 枚举----暴力枚举

    第一题 题目描述 由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成. 比如: 210 x 6 = 1260 8 x 473 = 3784 27 x 81 = 2187 都符合要求. ...

  7. 每日一练蓝桥杯C语言:暴力枚举

    在这里我给大家推荐一款不错刷算法学习网站:点击这处链接牛客网:牛客网作为国内内容超级丰富的 IT 题库,各种东西看的我眼花缭乱,题库+面试+学习+求职+讨论+大厂内推等等服务,堪称"互联网求 ...

  8. 算法基础2 —— OJ入门以及暴力枚举

    常见的OJ术语 Accepted (AC)-- 成功过题 Wrong Answer (WA) -- 输出结果错,一般是算法有问题,需要重新考虑思路或者其他 Runtime Error (RE) -- ...

  9. 暴力枚举——妖梦拼木棒

    暴力枚举--妖梦拼木棒 题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法? 答案对 109 + 7 取 ...

最新文章

  1. mysql限制小数位_Mysql中设置小数点用什么数据类型 decimal
  2. Java交换两个Integer-一道无聊的题的思考
  3. android 单例的作用,Android中单例模式的几个坑
  4. [转]重新分配内置存储空间 android手机
  5. blender 3d打印_如何在Blender中开始3D打印
  6. 点击页面的悬浮窗口实现随意拖动
  7. Robot Framework中经常用的第三方库的安装方法
  8. Android 解决EditText和ScrollView的滚动冲突
  9. 传感器实验——蜂鸣器
  10. matlab车牌识别课程设计,matlab车牌识别课程设计报告模板(附源代码)
  11. win10wifi开关自动弹回_win10突然搜不到wifi了,这个开关点不动,点了会自动变回去...
  12. web前端期末大作业 html+css+javascript防天天生鲜官网网页设计实例 企业网站制作
  13. 迷之Konigsberg七桥问题
  14. 过采样与欠采样图像重采样(上采样下采样)
  15. SQL 每月新增,复购人数,复购率
  16. 超全面的前端切图技巧,读这篇就够了
  17. Spring Boot【定制化】~ AOP统一结果处理以及异常拦截
  18. POJ 2404 Jogging Trails 笔记
  19. Unity app提高设备可用性
  20. 用C#实现竖列转盘游戏

热门文章

  1. 创业互联网公司如何搭建自己的技术框架
  2. 高动态范围图像-单图
  3. 自己实现一个最简单的数据库
  4. C++ 常用函数总结
  5. 缺少物联网杀手级应用的运营商,到底该怎么办?
  6. Android开发各类常见错误解决方案
  7. Django入门(七)   django的缓存
  8. ThinkPHP框架搭建网站
  9. C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示)
  10. 实验九:异常的抛出、捕获并处理