【题面】

【题解】

题意:这是一个打怪兽的故事~给定怪兽初始体力值H和一个轮回的长度n,然后给定一个轮回中每一局怪兽体力的变动序列。输出第几局怪兽被打败即体力不大于0,若怪兽必胜则输出-1.

思路:难点在于如何判断最后一轮,因此我们可以保存一下一轮中最大可失去的体力ma一轮后会失去的体力sum,然后把(H-ma)用整轮打斗处理一下,最后加上ma再枚举判断终止,保证了最优情况。怪兽必胜的判断条件显然是一轮过后sum>=0且怪兽还有体力。

【代码】

#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{ll h,n; scanf("%I64d%I64d",&h,&n);ll a[200005],sum=0,ma=0;ll ans=0;for(ll i=1;i<=n;i++){scanf("%I64d",&a[i]);sum+=a[i];ma=min(ma,sum);h+=a[i];if(h<=0&&ans==0) ans=i;}if(ans) printf("%I64d\n",ans);else if(sum>=0&&h>0) puts("-1");else{ma*=-1,sum*=-1;h-=ma;ans=(h/sum+1)*n;h%=sum;h+=ma;int i=1;while(h>0) h+=a[((i++)-1)%n+1];printf("%I64d",ans+i-1);}return 0;
}

CF 1141E. Superhero Battle(思维)相关推荐

  1. 1141E - Superhero Battle(数学思维) Codeforces Round #547 (Div. 3)

    原题链接:https://codeforces.com/contest/1141/problem/E 题意:超人与怪兽要进行多个个回合的战斗,每一个回合又细分为n分钟,在这一回合中每经过一分钟,怪兽会 ...

  2. Superhero Battle

    https://codeforces.com/contest/1141/problem/E 题解: /* *@Author: STZG *@Language: C++ */ #include < ...

  3. CF 513D. Social Circles 思维,贪心

    题意:  每个圆圈由若干张椅子组成. 现在有n个人 第i个人要求它左边至少有L[i]张空椅子, 右边至少有R[i]张空椅子. n<=1e5, 0<=L[i],R[i]<=1e9. 可 ...

  4. CF 1562 C. Rings (思维+模拟)

    链接 题意: 给出你一个01串,让你从中选取两端[l1,r1],[l2,r2][l_1,r_1],[l_2,r_2][l1​,r1​],[l2​,r2​],(l1,r1)(l_1,r_1)(l1​,r ...

  5. cf 226b 唯美思维题~.cpp

    题意: 给出n个数,让你用最少次数把所有的数都摞成一堆. 其中当把arr[i]摞在第j堆上时,得扣分arr[i] 题目有要求每个数上面不许摞超过k次,有m个k,让你求出m种情况下限制为k时的最优解,即 ...

  6. cf - 922C - Cave Painting ( 思维 + 数学 )

    题目链接:点击进入 题意 给你 n , k , 问是否 n % i ( 1<= i <= k ) 的值都不一样 思路 若n % i 的结果都不同,则 n % 1 = 0 n % 2 = 1 ...

  7. CodeForces - 1141ESuperhero Battle简单模拟

    Superhero Battle 这道题卡了我一个多小时,最后也没有做出来,成功称为吊车尾... 思路什么的都没有问题,主要是,爆long long了,这个太可怕了,就因为一个中间变量忘记开longl ...

  8. CF刷刷水题找自信 2

    CF 1114A  Got Any Grapes(葡萄)? 题目意思:给三个人分葡萄,三个人对葡萄的颜色有一些要求,问所准备的三种颜色的葡萄能否满足三人的要求. 解题意思:直接按条件判断即可. #in ...

  9. Codeforces Round #547 (Div. 3)

    E. Superhero Battle 题意 有一个血量,N次循环攻击,每次可以加血见血.问第几次可以把血量减到0 思路 如果存在解,必定是N次攻击中的一次终结,所以可以枚举终结点的情况,取一个最小值 ...

最新文章

  1. java swing 文件选择,设置默认文件选择路径,桌面路径
  2. [MySQL优化案例]系列 -- OPTIMIZE的威力
  3. ssm中java实现树状结构_java ssm使用递归写树形结构
  4. fpcx教程:在Final Cut Pro中添加多语言字幕
  5. Ubuntu 的护眼软件 :RedShift
  6. 快速制作机房3D效果图教程
  7. 关于Unable to read additional data from server sessionid 0x0问题的解决
  8. python from. import失败_彻底搞懂Python 中的 import 与 from import
  9. Altium Designer 17及以上版本快速画出Keep-Out layer层以便于覆铜操作
  10. MuseScore入门教程(三、添加声部)
  11. 在线PDF转换PPT,不用安装软件
  12. 用友GRP-U8Cloud V11.0 V11.21 行政业务高校 G C版
  13. 建一个网站需要花多少钱?
  14. 拓扑概念和GIS拓扑函数
  15. Chrome浏览器占用内存过高解决办法
  16. 信息安全工程师----五天修炼(第二章 安全法规和标准)
  17. HTML5游戏开发进阶指南(亚马逊5星畅销书,教你用HTML5和JavaScript构建游戏!)
  18. MYSQL 整型转字符型 拼接
  19. anaconda遇到“An unexpected error has occurred”问题
  20. vertical-align 属性、浮动(2)

热门文章

  1. STC15W4K48S4 外部RST引脚复位
  2. 推荐10个优质技术公众号
  3. Android实战——第三方服务之Bmob后端云的集成、用户登陆、用户注册、获取用户、用户注销(一)
  4. jQuery 效果 – 淡入淡出
  5. 深入理解二进制的一些用法及题目详解(一定可以帮你学会二进制的习题哟)
  6. 从壹开始 [ Nuxt.js ] 之一 || 为开源收录Bug之 TiBug项目 开篇讲
  7. 北京2021唐诗童高考成绩查询,2021北京高考成绩查询时间:6月下旬可查,6月27日起填报本科志愿...
  8. 关于iPhone6/6s分辨率的那些事
  9. C语言 一根长度为133m,(c语言)一根长度为133m的材料,需要截成长度为19m和23m的短料,求两种短料各截多少段时,剩余的材料多少...
  10. 二进制 原码 反码 补码