Space Station - Problem

思路

你会受到 nn 次攻击,第 ii 次攻击的伤害为 aia_i,其中 aa 是一个 1∼n1\sim n 的排列。你可以让攻击发生并付出 aia_i 的代价,或者使用 mm 的代价让伤害不发生。求在最优策略下期望值的最小值。

其中数据范围满足,1≤n,m≤1001\le n,m\le 100。

思路

设 fi,jf_{i,j} 表示剩下 ii 个数且它们的和为 jj 的方案数,ff 数组的转移十分显然:

∀i∈[1,n]∩Z,j∈[1,i]∩Z,k∈[ai,200⋅i]∩Z    fj,k←fj,k+fj−1,k−ai\forall i \in [1,n]\cap\mathbb{Z},j\in[1,i]\cap\mathbb{Z},k\in[a_i,200\cdot i]\cap\mathbb{Z}~~~~f_{j,k}\gets f_{j,k}+f_{j-1,k-a _i}

对于最优策略,显然在选择到 pp 的位置时,如果 ∑i=p+1nain−p+2>m\frac{\sum\limits_{i=p+1}^n a_i}{n-p+2}>m 选择使用防御,反之吃下 aia_i 的代价。

根据期望的定义,可以得到答案为:

∑i=1n∑j=i200⋅ifi,j×min⁡(j,i×m)i×Cni\sum\limits_{i=1}^n\frac{\sum\limits_{j=i}^{200\cdot i}f_{i,j}\times \min(j,i\times m)}{i\times C_{n}^{i}}