CF369D Valera and Fools 题解
1|0题目链接
2|0题意简述
有 n 个人站成一排,每人手中有 k 发子弹,每次每人会向除自己外编号最小的人开枪,第 i 个人开枪的命中率为 pi%,剩余最多一人时结束,问有多少种可能的局面。
3|0解法说明
从题目要求中可以发现,每次一定是编号最小的人向编号第二小的人开枪,其余人向编号最小的人开枪,也就是说,每次只有编号最小和第二小的两个人受到枪击。
故对于每一轮,我们可以设此时编号最小的和第二小的人分别为 x,y,令 fx,y 表示转移到 x,y 所需要的步数(即消耗的子弹数)则会有以下四种情况:
- 两人都未被击中
未发生变化,忽略。
- x 被击中,而 y 幸存
此时如满足 px<100(否则 y 必然被击中)且 ∃i∈[y,n],pi>0(否则 x 无法被击中),则转移到 fy,y+1;
- x 幸存,而 y 被击中
此时如满足 px>0(否则 y 无法被击中)且 ∀i∈[y,n],pi≠0(否则 x 必然被击中),则转移到 fx,y+1;
- x 与 y 都被击中
此时如满足 px>0(否则 y 无法被击中)且 ∃i∈[y,n],pi>0(否则 x 无法被击中),则转移到 fy+1,y+2。
剩余细节详见下面代码中的注释。
4|0通过代码
__EOF__

本文作者:Alexxtl
本文链接:https://www.cnblogs.com/Alexxtl/p/18294941.html
关于博主:I am a good person
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Alexxtl/p/18294941.html
关于博主:I am a good person
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现