题解:期望DP
这里有一个细节就是,需要使用第二种卡牌的时候,收集到的能量晶体才会被消耗,因此需要记录消耗的能量晶体数,然后并把守卫的血量扣除固定值x的伤害
定义f[i][j]为投掷前i次 点数总和为j的概率
最终首先判断投掷的次数num∗6是否小于h
不小于的话,就把对应的概率之和累加
在一场秘境探险中,探险家需要按顺序打出全部卡牌攻击一名守卫。守卫有一个初始生命值。卡牌分为两类:
充能卡:获得 v 个能量晶体。 爆破卡:先造成 v 点固定伤害,然后消耗当前所有能量晶体并使其归零;每消耗一个能量晶体,就投掷一枚六面骰子。骰子点数为 1 到 6,每面等概率。爆破造成的骰子伤害等于所有骰子点数之和。
一轮结束后,若守卫累计受到的总伤害不低于其初始生命值,则视为击杀。已知卡牌顺序与数值,求这一轮内击杀守卫的概率。
数据范围:卡牌数量 n 满足 2≤n≤99;初始生命值 m 满足 2≤m<109;每张卡牌上的整数 v 满足 1≤v≤10;type 只取 1 或 2。保证所有爆破卡牌固定伤害之和小于初始生命值。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.