贪心 + dp 计数.
首先,对于给定 $m$ 张牌,由于强化牌的值都 $>1$ ,所以我们可以贪心制定以下打牌策略:
- 若没有攻击牌,则无论怎么打,伤害值都是 $0$ .
若强化牌 $<k$ 张,则先打出所有强化牌,再从大到小打出攻击牌,直到一共打出 $k$ 张.
若强化牌 $\ge k$ 张,则先从大到小打出 $k-1$ 张强化牌,再打出一张最大的攻击牌.
设 $F(i,j)$ 表示抽了 $i$ 张强化牌,按最优策略打出 $j$ 张时每种方案权值乘积之和.
设 $G(i,j)$ 表示抽了 $i$ 张攻击牌,按最优策略打出 $j$ 张时每种方案权值总和之和.
强化牌 $<k$ 张的情况贡献就是 $\sum F(i,i)\cdot G(m-i,k-i)$ .
强化牌 $\ge k$ 张的情况贡献就是 $\sum F(i,k-1)\cdot G(m-i,1)$ .
只需要考虑 $F,G$ 怎么求.
设 $f(i,j)$ 表示打了 $i$ 张强化牌,权值最小的强化牌是第 $j$ 张的贡献总和,即可求出 $F$ , $G$ 的求法同理.
时间复杂度 $O(n^2)$ .
1 |
|