P3239 [HNOI2015] 亚瑟王

P3239

bzoj #4008

  • 根据期望的线性性,我们设 Ei,Pi 分别表示第 i 张卡牌期望造成伤害和第 i 张卡牌被选择的概率。我们可以知道:

(1)Ans=i=1nEi(2)=i=1nPidi

  • 因此我们只需要考虑对于每一张卡牌怎么求出 Pi
  • 我们发现如果第 i 张卡牌被考虑了 j 次,则他至少被选择一次的概率为 1(1pi)j ,即总的概率 不会被选的概率
  • 我们把原问题画成一个表格,其中第 i 行表示第 i 轮,第 j 列表示第 j 张牌。我们考虑竖着 dp 这个问题,因为横着 dp 我们是不好记录前若干轮的状态的,而题目有一个比较重要的性质:如果技能发动,则对敌方造成 di 点伤害,并结束这一轮。因此我们只需要考虑前 i 张牌在 r 轮中被选择了多少张即可
    • 设计状态:设 dpi,j 表示前 i 张牌在 r 轮种选了 j 张的概率
    • 初始化: dpi,j0,dp0,01
    • 转移:dpi,jdpi1,j×(1pi)rj+dpi1,j1×(1(1pi)rj+1)
    • 统计答案: Pi=j=0rdpi1,j×(1pi)rj
  • 最终复杂度 O(Tnr)
posted @   FOX_konata  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示