CF 1141E. Superhero Battle(思维)
【题面】
【题解】
题意:这是一个打怪兽的故事~给定怪兽初始体力值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(思维)相关推荐
- 1141E - Superhero Battle(数学思维) Codeforces Round #547 (Div. 3)
原题链接:https://codeforces.com/contest/1141/problem/E 题意:超人与怪兽要进行多个个回合的战斗,每一个回合又细分为n分钟,在这一回合中每经过一分钟,怪兽会 ...
- Superhero Battle
https://codeforces.com/contest/1141/problem/E 题解: /* *@Author: STZG *@Language: C++ */ #include < ...
- CF 513D. Social Circles 思维,贪心
题意: 每个圆圈由若干张椅子组成. 现在有n个人 第i个人要求它左边至少有L[i]张空椅子, 右边至少有R[i]张空椅子. n<=1e5, 0<=L[i],R[i]<=1e9. 可 ...
- 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 ...
- cf 226b 唯美思维题~.cpp
题意: 给出n个数,让你用最少次数把所有的数都摞成一堆. 其中当把arr[i]摞在第j堆上时,得扣分arr[i] 题目有要求每个数上面不许摞超过k次,有m个k,让你求出m种情况下限制为k时的最优解,即 ...
- cf - 922C - Cave Painting ( 思维 + 数学 )
题目链接:点击进入 题意 给你 n , k , 问是否 n % i ( 1<= i <= k ) 的值都不一样 思路 若n % i 的结果都不同,则 n % 1 = 0 n % 2 = 1 ...
- CodeForces - 1141ESuperhero Battle简单模拟
Superhero Battle 这道题卡了我一个多小时,最后也没有做出来,成功称为吊车尾... 思路什么的都没有问题,主要是,爆long long了,这个太可怕了,就因为一个中间变量忘记开longl ...
- CF刷刷水题找自信 2
CF 1114A Got Any Grapes(葡萄)? 题目意思:给三个人分葡萄,三个人对葡萄的颜色有一些要求,问所准备的三种颜色的葡萄能否满足三人的要求. 解题意思:直接按条件判断即可. #in ...
- Codeforces Round #547 (Div. 3)
E. Superhero Battle 题意 有一个血量,N次循环攻击,每次可以加血见血.问第几次可以把血量减到0 思路 如果存在解,必定是N次攻击中的一次终结,所以可以枚举终结点的情况,取一个最小值 ...
最新文章
- java swing 文件选择,设置默认文件选择路径,桌面路径
- [MySQL优化案例]系列 -- OPTIMIZE的威力
- ssm中java实现树状结构_java ssm使用递归写树形结构
- fpcx教程:在Final Cut Pro中添加多语言字幕
- Ubuntu 的护眼软件 :RedShift
- 快速制作机房3D效果图教程
- 关于Unable to read additional data from server sessionid 0x0问题的解决
- python from. import失败_彻底搞懂Python 中的 import 与 from import
- Altium Designer 17及以上版本快速画出Keep-Out layer层以便于覆铜操作
- MuseScore入门教程(三、添加声部)
- 在线PDF转换PPT,不用安装软件
- 用友GRP-U8Cloud V11.0 V11.21 行政业务高校 G C版
- 建一个网站需要花多少钱?
- 拓扑概念和GIS拓扑函数
- Chrome浏览器占用内存过高解决办法
- 信息安全工程师----五天修炼(第二章 安全法规和标准)
- HTML5游戏开发进阶指南(亚马逊5星畅销书,教你用HTML5和JavaScript构建游戏!)
- MYSQL 整型转字符型 拼接
- anaconda遇到“An unexpected error has occurred”问题
- vertical-align 属性、浮动(2)
热门文章
- STC15W4K48S4 外部RST引脚复位
- 推荐10个优质技术公众号
- Android实战——第三方服务之Bmob后端云的集成、用户登陆、用户注册、获取用户、用户注销(一)
- jQuery 效果 – 淡入淡出
- 深入理解二进制的一些用法及题目详解(一定可以帮你学会二进制的习题哟)
- 从壹开始 [ Nuxt.js ] 之一 || 为开源收录Bug之 TiBug项目 开篇讲
- 北京2021唐诗童高考成绩查询,2021北京高考成绩查询时间:6月下旬可查,6月27日起填报本科志愿...
- 关于iPhone6/6s分辨率的那些事
- C语言 一根长度为133m,(c语言)一根长度为133m的材料,需要截成长度为19m和23m的短料,求两种短料各截多少段时,剩余的材料多少...
- 二进制 原码 反码 补码