Codeforces Round #700 (Div. 2) B. The Great Hero
https://codeforces.com/contest/1480/problem/B
最后杀哪个怪?
当然是最后杀攻击最高的怪。
因为杀了这个怪可能就同归了,如果先杀攻击高的怪,可能其他小怪还没杀就和这个大怪同归了。
最后一刀给攻击最高的怪,如何计算最后一刀之前英雄血量的状态呢?
相当于先打败所有怪,再把最后一刀掉的血加上(加上一个最高伤害)
最后一刀之前,只有英雄还活着,它就能杀出这最后一刀,即为杀死所有的小怪。
// // Created by w on 2021-02-08. // #include <iostream> #include <algorithm> #include <cstring> typedef long long ll ; struct gs //怪兽 { ll a,b; }ggs[100010]; using namespace std; int main() { ll N; cin>>N; while (N--) { ll A,B,n; cin>>A>>B>>n; ll maxsh = 0; for (int i = 0; i < n; ++i) { cin>>ggs[i].a; maxsh=max(maxsh,ggs[i].a); } for (int i = 0; i < n; ++i) { cin>>ggs[i].b; } for (int i = 0; i <n ; ++i) { //times是需要攻击小怪兽的次数 ll times=ggs[i].b/A+(ggs[i].b%A!=0); /*times 首先times=ggs[i].b/A是向下取整 接下来如果(ggs[i].b % A != 0),则括号里为true(1),正好为向上取整 */ B-=times*ggs[i].a; } B+=maxsh;//恢复到最后一刀之前的状态进行判断 if(B<=0)//最后一刀之前血量为0,坎不出最后一刀 puts("NO"); else//否则能砍出最后一刀 puts("YES"); } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!