A7102 | [蓝桥杯 2024 省 Java B] 最优分组
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
小蓝开了一家宠物店,最近有一种 X 病毒在动物之间进行传染,小蓝为了以防万一打算购买测试剂对自己的宠物进行病毒感染测试。
为了减少使用的测试剂数目,小蓝想到了一个好方法:将 $N$ 个宠物平均分为若干组,使得每组恰好有 $K$ 只宠物,这样对同一组的宠物进行采样并混合后用一个试剂进行检测,如果测试结果为阴性则说明组内宠物都未感染 X 病毒;如果是阳性的话则需要对组内所有 $K$ 只宠物单独检测,需要再消耗 $K$ 支测试剂(当 $K=1$ 时,就没必要再次进行单独检测了,因为组内只有一只宠物,一次检测便能确认答案)。
现在我们已知小蓝的宠物被感染的概率为 $p$,请问 $K$ 应该取值为多少,才能使得期望的测试剂的消耗数目最少?如果有多个答案,请输出最小的 $K$。
为了减少使用的测试剂数目,小蓝想到了一个好方法:将 $N$ 个宠物平均分为若干组,使得每组恰好有 $K$ 只宠物,这样对同一组的宠物进行采样并混合后用一个试剂进行检测,如果测试结果为阴性则说明组内宠物都未感染 X 病毒;如果是阳性的话则需要对组内所有 $K$ 只宠物单独检测,需要再消耗 $K$ 支测试剂(当 $K=1$ 时,就没必要再次进行单独检测了,因为组内只有一只宠物,一次检测便能确认答案)。
现在我们已知小蓝的宠物被感染的概率为 $p$,请问 $K$ 应该取值为多少,才能使得期望的测试剂的消耗数目最少?如果有多个答案,请输出最小的 $K$。
输入格式
第一行,一个整数 $N$。
第二行,一个浮点数 $p$。
第二行,一个浮点数 $p$。
输出格式
输出一行,一个整数 $K$ 表示答案。
输入输出样例
输入 #1
1000 0.05
输出 #1
5
## 数据范围
对于 $30\%$ 的评测用例:$1\leq N\leq 10$。
对于 $60\%$ 的评测用例:$1\leq N\leq 1000$。
对于 $100\%$ 的评测用例:$1\leq N\leq 10^6$,$0\leq p\leq 1$。
对于 $30\%$ 的评测用例:$1\leq N\leq 10$。
对于 $60\%$ 的评测用例:$1\leq N\leq 1000$。
对于 $100\%$ 的评测用例:$1\leq N\leq 10^6$,$0\leq p\leq 1$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?