A5312 | 立体炸弹
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
阿北的舰队有四条船,每条船有 $n$ 个立体炸弹和 $m$ 点装甲上限,作战预计总共 $t$ 秒。每个立体炸弹每轮运转 $12$ 秒会对包括自己在内的所有舰船的装甲造成 $x$ 点伤害,如果装甲值因此降到 $0$ 或以下则舰船被炸毁。每个维修装置每轮运转 $10$ 秒能够维修 $y$ 点装甲,但装甲无法超过上限。
立体炸弹和维修装置都从第0秒开始运转并自动循环运转,产生的伤害与维修都在每轮结束时计算,同一秒内先计算伤害,舰船未被炸毁则再计算维修。
阿北只是邪修配置,不是恐怖袭击,所以希望你能帮他算一算每条船至少需要准备多少个维修装置才能确保己方舰队不会被立体炸弹炸死。
注意每轮运转结束后都会立即开始新一轮,除非时间已经超过出预计时间。即使战斗已经结束,当前正在运转中的炸弹和维修装置仍然会运行完当前轮并产生伤害与维修。
立体炸弹和维修装置都从第0秒开始运转并自动循环运转,产生的伤害与维修都在每轮结束时计算,同一秒内先计算伤害,舰船未被炸毁则再计算维修。
阿北只是邪修配置,不是恐怖袭击,所以希望你能帮他算一算每条船至少需要准备多少个维修装置才能确保己方舰队不会被立体炸弹炸死。
注意每轮运转结束后都会立即开始新一轮,除非时间已经超过出预计时间。即使战斗已经结束,当前正在运转中的炸弹和维修装置仍然会运行完当前轮并产生伤害与维修。
输入格式
第一行输入三个整数,分别代表每条船有 $n$ 个立体炸弹和 $m$ 点装甲上限,作战预计总共 $t$ 秒。
第二行输入两个整数,分别代表每个立体炸弹每轮的伤害 $x$ 和每个维修装置每轮的维修量 $y$。
第二行输入两个整数,分别代表每个立体炸弹每轮的伤害 $x$ 和每个维修装置每轮的维修量 $y$。
输出格式
输出一个整数,表示确保己方舰队不会被炸死所需维修装置的最小数量。如果无法保证,则输出
-1。输入输出样例
输入 #1
1 13 100 5 3
输出 #1
-1
输入 #2
1 30 100 5 3
输出 #2
6
样例解释
样例 $1$ 在第 $10$ 秒进行维修,但装甲无法超过上限,此时装甲仍为 $13$ 点。在第 $12$ 秒炸弹造成 $4\times 1\times 5=20$ 点伤害,导致舰队被炸死。
样例 $2$ 每轮炸弹造成 $4\times 1\times 5=20$ 点伤害。如果只有 $5$ 个维修装置每轮维修 $15$ 点装甲,则在第 $36$ 秒时刚好被炸死,装甲变化情况为 $30-20+15-20+15-20=0$ ,其中第 $10$ 秒的维修超出上限实际并未产生变化。如果有 $6$ 个维修装置,则 $100$ 秒内装甲不会降到 $0$ 或更低。
数据范围
$1\le n\le 10$
$100\le m\le 2\times 10^{5}$
$10\le t\le 10^{3}$
$1\le x,y\le 500$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?