首页 > Superhero Battle
头像 Kur1su
发表于 2020-12-15 16:24:37
Description n个数字一个循环,每秒经过一个数字,血量变化为 总血量为HP,问HP经过多少秒后小于等于0Codeforces Difficulty 1700 Solution 分类讨论 找最大的一个前缀和,如果这个最大的前缀和 大于HP,那么可以在一轮内完成。 再看一轮的前缀和 ,如果 展开全文
头像 BNDSBilly
发表于 2020-12-15 15:04:54
首先,回合数越少越好。我们发现,让boss剩下最多(但是在一个回合内能够击杀)的血量时回合数最少 把boss的血量状态压缩,然后进行枚举,代码如下: #include <bits/stdc++.h> #define R register #define ll long long #def 展开全文
头像 sunsetcolors
发表于 2020-12-15 15:17:37
Superhero Battle 题目地址: https://ac.nowcoder.com/acm/problem/113566 基本思路: 比较简单的数学+模拟,我们先考虑一下无限循环下去的情况,很明显只要在一轮循环中不能让HP清零,并且每轮的总和是大于等于零的,那么就会无限循环下去;否 展开全文
头像 MYCui_
发表于 2020-12-15 17:03:07
前言 这道题目其实就是 NOIP 2020 T4 微信步数 的40分做法。 这里提供 O( + )的做法 ------ 二分 + 前缀和(时间复杂度就是O(n))。 题目分析 不难发现,这道题目是要我们求最少多少天就会杀死怪物,同时,这个东西是具有单调性的。 (有解的情况下) 天数越多肯定就会扣除怪 展开全文
头像 nagisa_菜鸡
发表于 2020-12-23 11:33:33
这题其实不难,为啥放在cf div2的E呢?下文中,每个round对怪物造成的净伤害为sum,一个round中对这个怪物的最大伤害为mx,均为负数这题主要是有个坑点:可能在一个round中会有一个点,它大于整个round结束之后对怪物造成的净伤害。所以,我们需要找出一个round中最大的伤害的点mx 展开全文
头像 熠丶
发表于 2020-12-16 14:42:39
做法:前缀和 思路: 1.如果前n天(第一轮)不能打死怪物,并且第一轮结束怪物没有掉血可以保证一定打不死怪物 2.剩下的情况可以进行模拟即可 代码 #include <bits/stdc++.h> using namespace std; #define pb push_back # 展开全文
头像 hnust_yangyanjun
发表于 2020-12-17 19:04:57
题意:有一个初始血量为h的怪物,有n个回合,每回合怪物的血量加di,如果怪物血量小于等于0,则怪物死亡,如果怪物不是,则n个回合循环运行,如果怪物无法死亡,则输出-1,否则输出怪物死的回合. 思路:记录n个回合中对怪物伤害最大的一个回合,即d数组的最小前缀和,记录值mi.如果mi+h<=0,则 展开全文

等你来战

查看全部