134 字
1 分钟

题解:AT_abc368_c [ABC368C] Triple Attack

2024-08-25
浏览量 加载中...

题意言简意赅无需赘述。注意每次只攻击最前面生命值为正数的怪物。

思路解析#

由题意可知怪物生命减少数量以 1 1 3 为一组循环,所以只需先将每组血量一起减少 55,如果这只怪物在本回合没有死则再次执行上述操作即可。

代码实现#

代码实现非常简单。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=2e5+10;
ll n,i,x,t,f,a[N];
int main(){
cin>>n;
for(i=1;i<=n;i++)cin>>a[i];
for(i=1;i<=n;i++){
if(a[i]>0&&!f)a[i]--,f++,x++;
if(a[i]>0&&f==1)a[i]--,f++,x++;
if(a[i]>0&&f==2)a[i]-=3,f=0,x++;
t=a[i]/5;x+=t*3;a[i]-=t*5;
if(a[i]>0)a[i]--,f++,x++;
if(a[i]>0)a[i]--,f++,x++;
if(a[i]>0)a[i]-=3,f=0,x++;
}
cout<<x;
}

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
题解:AT_abc368_c [ABC368C] Triple Attack
https://blog.walterfang.site/posts/solution-at_abc368_c/
作者
Walter_Fang
发布于
2024-08-25
许可协议
CC BY-NC-SA 4.0
最后更新于 2024-08-25,距今已过 500 天

部分内容可能已过时

评论区

目录