题解链接:题解链接

RD是输入,OT是输出

A – SERVAL VS MONSTER
链接:
A题

题意:
给你怪物血量H和攻击一次扣A血,问至少要攻击几次能使怪物的血量小于或者等于0

解法:
按题意模拟,考虑到循环减去时间会较长,故判断奇偶后除求解攻击次数

代码

int main(){LL h, a;RD(h, a);if (h%a == 0) cout << h/a << '\n';else  cout << h/a+1 << '\n';
}

B – COMMON RACCOON VS MONSTER
链接:
B题

题意:
怪物有H滴血,有N种攻击方式,每种攻击方式能造成ai的伤害,问每种攻击方式攻击一次是否能够使怪物血量小于或者等于0

解法:
模拟,直接扣最后判断即可

代码:

int main(){int h, n; RD(h, n);for(int i = 0; i < n; i++){LL x; RD(x);h-=x;}if (h <= 0) OT("Yes\n");else OT("No\n");
}

C – FENNEC VS MONSTER
链接:
c题

题意:
Fennec 和 N 个怪物进行战斗,第 i 个怪物的血量为 Hi ,Fennec可以进行两种操作,一种攻击扣一滴血,另一种特殊攻击,能够使一个怪物的血量降到0,但是特殊攻击只能进行K次,求需要进行几次攻击

解法:
删去K个H大的怪物,剩余的平a

代码:

const int N = 2e5+50;
int H[N];
int main(){LL n, k; RD(n, k);REP(i, n) RD(H[i]);sort(H, H+n);LL ans = 0;for(int i = 0; i < n-k; i++){ans += H[i];}OT(ans);
}

D – CARACAL VS MONSTER
链接:
D题

题意:

怪物有H滴血,有两种操作方式,问需要操作几次?
如果 H > 1进行分裂和扣半血操作(扣半血是下取整操作)【这是算一次操作】
如果 H <= 1直接血量降为 0

解法:
仔细看样例会知道这是一题数学题,多列样例猜测规律
血量H 操作次数ans

1 1
2 3
3 3
4 7

1000000000000 1099511627775
画出图来后知道在大于1的时候一定要经过分裂,直到分裂扣血到1停止

int main(){LL h; RD(h);LL ans = 0, x = 1;while(x <= h){ans+=x;x<<=1;}OT(ans);
}

E – CRESTED IBIS VS MONSTER
类型:
完全背包问题、动态规划

链接:
E题

题意:
怪物有H滴血,魔法师有N个技能,每进行i技能时,魔法师自身消耗b[ i ]法力值,怪物扣血a[ i ],求使怪物血量小于等于0,最少消耗的法力值

解法:
H滴血相当于背包容量,N个技能相当于N种选择,a[ i ] 相当于物品重量, b[ i ]相当于每个物品的价值
转移方程

int x = max(0, j-a[i]);
dp[j] = min(dp[j],dp[x]+b[i]);

即选择下一个技能的话就要加上下一个技能的b[ i ],不选择的话就不加

代码:

const int maxn = 1e5+10;
int a[maxn], b[maxn];
const int N = 1e4+10;
int dp[N]= {0};
int main(){int h, n; RD(h, n);for(int i = 1; i <= n; i++){RD(a[i], b[i]);}FOR_1(i, 1, h) dp[i] = 1e9; dp[0] = 0;FOR_1(i, 1, n){FOR_1(j, 0, h){int x = max(0, j-a[i]);dp[j] = min(dp[j],dp[x]+b[i]);}}OT(dp[h]);
}

F – SILVER FOX VS MONSTER
链接:
F题

题意:
银狐和N个怪物战斗。N个怪物在一条线上,第i个怪物站在第xi个位置,并且具有hi点血量,现在进行激光炮对x位置进行轰击,会对x-D 到 x+D范围内怪物造成伤害,求解轰击次数。

解法:
建立一个c[ i ]计算每个点位的炮击次数need,即c[ i ]+=need,计算最远的炮击位置c[i+1] += c[i],超出范围的都会扣除need,所以+c[i]-need就会抵消了

代码:

const int N = 2e5+50;
LL c[N];
struct mos{int x;int h;
} p[N];
bool cmp(mos a, mos b){return a.x < b.x;
}
int main(){int n, a, d; RD(n, d, a);FOR_1(i, 1, n){RD(p[i].x, p[i].h);}sort(p+1, p+n+1, cmp);LL ans = 0;for (int i = 1,j = 1; i <= n; i++){while(j <= n && p[j].x <= p[i].x + 2*d)++j;LL need = max((p[i].h - c[i]*a + a - 1)/a, 0ll);ans += need;c[i] += need;c[j] -= need;c[i+1] += c[i];}cout << ans << endl;
}

AtCoder Beginner Contest 153 题解相关推荐

  1. AtCoder Beginner Contest 197 题解(A ~ F)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Rotate B - Visibility C - ORXOR D - Opposite ...

  2. Caddi Programming Contest 2021(AtCoder Beginner Contest 193) 题解

    Caddi Programming Contest 2021(AtCoder Beginner Contest 193) A - Discount 打折浮点数除即可 B - Play Snuke 枚举 ...

  3. Panasonic Programming Contest (AtCoder Beginner Contest 195) 题解

    文章目录 A - Health M Death B - Many Oranges C - Comma D - Shipping Center E - Lucky 7 Battle F - Coprim ...

  4. AtCoder Beginner Contest 096 题解

    比赛地址 https://abc096.contest.atcoder.jp A - Day of Takahashi 题目大意 我们把月和日相同的日期叫做"Takahashi日" ...

  5. freee Programming Contest 2022(AtCoder Beginner Contest 264) 题解 (A~D)

    A - "atcoder".substr() Time Limit: 2 sec / Memory Limit: 1024 MB Score : 100100100 points ...

  6. [2021-09-04 AtCoder Beginner Contest 217] 题解

    文章目录 A - Lexicographic Order B - AtCoder Quiz C - Inverse of Permutation D - Cutting Woods E - Sorti ...

  7. AtCoder Beginner Contest 168题解

    这里写目录标题 A - ∴ (Therefore) 代码 B - ... (Triple Dots) 代码 C - : (Colon) 代码 D - .. (Double Dots) 题意 题解 代码 ...

  8. AtCoder Beginner Contest 177 题解

    希望更好的阅读体验?点这里 一.题解 A.Don't be late 题目大意: 高桥君计划在 TTT 分钟内于离家 DDD 米的地方与青木君碰面,已知高桥君速度为 SSS,问他能否在 TTT 分钟内 ...

  9. AtCoder Beginner Contest 055题解

    A.当a=1就把a改成14,b=1就把b改成14,然后比较a,b大小即可. #include <iostream> #include <algorithm> #include ...

最新文章

  1. PHP学习之没有权限修改hosts文件
  2. oauth2 token为空拦截_feign之间传递oauth2-token的问题和解决
  3. iis php 0x80070032,访问网站时 HTTP 错误 404.17 - Internet Information Services | Microsoft Docs...
  4. CIFAR和SVHN在各CNN论文中的结果
  5. 论文浅尝 | 基于知识图谱 Embedding 的问答
  6. H3C批量收集服务器信息,H3C设备服务器采集参数认证过程(包含redfish和restfull协议)...
  7. 单价数量和总价的公式_人教版四年级数学上册单价、数量和总价之间的关系微课...
  8. Python一直报错:SyntaxError: invalid syntax 的原因及解决办法
  9. uefi引导linux_使用UEFI双重引导Windows和Linux
  10. 实现中文下的UITableView Index
  11. java jpanel 叠加_java之JFrame、JPanel混合布局-Go语言中文社区
  12. appscan无法连接到服务器_闪烁之光无法连接服务器怎么办 解决方案一览
  13. 简单的整人代码(你是猪,文章末附带文件)
  14. 【IoT】产品外包策略:外包地图-充分利用内外部资源
  15. Android 代码设置默认输入法
  16. 麻省理工学院:科技宠儿的摇篮
  17. 【C++学习笔记】标准库类型string
  18. 矩阵链乘法 自顶向下 自底向上 Python 实现 算法导论
  19. EU.org免费域名申请教程
  20. 禅道——图文安装及使用教程

热门文章

  1. 大数据架构师拿年薪50W的方法诀窍
  2. paddle 40 支持任意维度数据的梯度平衡机制GHM Loss的实现(支持ignore_index、class_weight,支持反向传播训练,支持多分类)
  3. cJSON详细剖析(四)----cJSON_Print()函数
  4. Idea创建JavaEE项目
  5. TCP的FIN/RST Cookie
  6. Access to XMLHttpRequest at ‘file:///D:/xx/xxx.json‘ from origin ‘null‘ has been blocked by CORS问题解决
  7. 【 Kotlin 脚本编程Kotlin Scripting 】Linux Shell 脚本与Kotlin Scripting
  8. cookie的简单介绍
  9. 公司打卡签到活动小程序,打卡更轻松,管理更便捷JavaScript 错误 - throw、try 和 catch
  10. FileZilla FTP Server FTP over TLS settings 设置FTP服务器证书启用FTPS 【转载】