A4821 | 危险の试剂
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
A 市是一个人才聚集地,许多高新技术产业都出自这里。而在这里有一个化学实验室,一位赫赫有名的奇异博士就在这里工作。
他经过两年半的研究,终于发现了一种试剂。这种药剂有一个特性,一旦激活它,里面就会产生 $1$ 个弹珠,其半径为 $r_1$;而每过 $1$ 秒,弹珠的数量就会自我分裂,所有弹珠完成分裂后弹珠总数会变成以前的 $k$ 倍且大小不变,直至把药剂瓶挤满为止。(对于直圆柱体和球体体积的计算公式请见下文的特殊说明部分)
试剂的发现实现了弹珠的量产,弹珠的价格也因此降低了。对于酷爱和朋友玩弹珠的 FM 是一个极大的好消息,但此时的奇异博士却犯了愁,毕竟任何试剂的使用都要以安全为中心。他正准备放弃这种试剂,FM 打来电话表示你可以算出试剂激活后持续多少秒不会导致试剂瓶损坏爆炸,是安全的,并劝他别放弃研究。
既然 FM 已经对奇异博士打了包票,现在 FM 要开始着手解决这个问题了。
他经过两年半的研究,终于发现了一种试剂。这种药剂有一个特性,一旦激活它,里面就会产生 $1$ 个弹珠,其半径为 $r_1$;而每过 $1$ 秒,弹珠的数量就会自我分裂,所有弹珠完成分裂后弹珠总数会变成以前的 $k$ 倍且大小不变,直至把药剂瓶挤满为止。(对于直圆柱体和球体体积的计算公式请见下文的特殊说明部分)
试剂的发现实现了弹珠的量产,弹珠的价格也因此降低了。对于酷爱和朋友玩弹珠的 FM 是一个极大的好消息,但此时的奇异博士却犯了愁,毕竟任何试剂的使用都要以安全为中心。他正准备放弃这种试剂,FM 打来电话表示你可以算出试剂激活后持续多少秒不会导致试剂瓶损坏爆炸,是安全的,并劝他别放弃研究。
既然 FM 已经对奇异博士打了包票,现在 FM 要开始着手解决这个问题了。
输入格式
输入共 $T+1$ 行:
第一行 $1$ 个正整数 $T$ 表示试剂的数量;
接下来 $T$ 行每行 $4$ 个正整数 $h$、$r_0$、$k$ 和 $r_1$,分别表示试剂瓶的高、试剂瓶的底面半径、弹珠分裂的倍数和弹珠的半径。
第一行 $1$ 个正整数 $T$ 表示试剂的数量;
接下来 $T$ 行每行 $4$ 个正整数 $h$、$r_0$、$k$ 和 $r_1$,分别表示试剂瓶的高、试剂瓶的底面半径、弹珠分裂的倍数和弹珠的半径。
输出格式
输出共 $T$ 行:
对于每组输入,输出一行一个整数 $s$ 表示该试剂在激活后的 $s$ 秒内是安全的。若一旦激活就不安全,则输出 $-1$。
对于每组输入,输出一行一个整数 $s$ 表示该试剂在激活后的 $s$ 秒内是安全的。若一旦激活就不安全,则输出 $-1$。
输入输出样例
输入 #1
2 4 3 2 1 3 4 5 2
输出 #1
4 0
【数据范围】
对于所有的数据,保证:
$1\le T\le10^4$,$1\le h,r_0,r_1\le10^8$,$2\le k\le10^6$
| 测试点 | $k\le$ | 特殊性质 |
|---|---|---|
| 1~5 | $5$ | 无 |
| 6~9 | $10^6$ | A |
| 10~20 | $10^6$ | 无 |
特殊性质 A:$h=r_0=k=r_1$。
本题测试点等分。
【样例解释】
样例组 #1:共有 $2$ 瓶试剂。第 $1$ 瓶试剂瓶的高是 $4$,底面半径是 $3$,弹珠的分裂倍数是 $2$,弹珠的半径是 $1$,因此最多可分裂 $4$ 次,产生 $16$ 个弹珠,用时 $4$ 秒。第 $2$ 瓶试剂瓶的高是 $3$,底面半径是 $4$,弹珠的分裂倍数是 $5$,弹珠的半径是 $2$,一旦进行分裂就会导致弹珠总体积超出瓶子容积,无法进行分裂,因此最多可分裂 $0$ 次,产生 $1$ 个弹珠,用时 $0$ 秒。
【特殊说明】
- 不计弹珠之间的空隙体积。
- 弹珠的形状看作正球体,试剂瓶的形状看作直圆柱体。
- 正球体体积的计算公式为 $V=\frac{4}{3}\pi r^3$,直圆柱体体积的计算公式为 $V=\pi r^2h$,取 $\pi$ 为 $3.14$。
- 本题使用了Special Judge,因此在计算中存在的误差 $\leq 10^{-8}$ 即视为正确。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?