题目链接
题意分析
这个题其实不是期望
就是一共有\(C_{2n}^m\)种情况 每一种情况选择\(k\)张牌 然后求最大攻击值的总和
我们考虑
当前抽出了选出了\(i\)张强化牌 \(m-i\)张攻击牌
首先 可以肯定的是 能出强化牌就尽量出强化牌
我们去枚举\(i\)
如果\(i 那么就出\(i\)张强化牌 \(m-i\)张攻击牌
如果\(i≥k\) 那么就出\(k-1\)张强化牌 \(1\)张攻击牌
\(CDY(i,j)\)表示i张强化牌出\(j\)张 所有方案强化的倍率之和
\(WZY(i,j)\)表示i张攻击牌出\(j\)张 所有方案强化的攻击力之和
二者分别对应\(CDY(i,i)* WZY(m-i,k-i)\)以及\(CDY(i,k-1)* WZY(m-i,1)\)
根据乘法分配律
现在考虑如何计算 \(CDY\)以及\(WZY\)
首先 对于相同数量的牌 由于跟顺序没有关系 所以我们\(sort\)之后贪心选择最大即可
\(f(i,j)\)表示选了\(i\)张强化牌并且最靠前的是第\(j\)张牌
同理 \(g(i,j)\)同理
详细见代码
CODE:
#include
#include
#include
#include
#include
#include
#include
#include
#include
HEOI 2019 RP++