有$n$人,需要$p$个选手和$k$个观众。$(p\leq 7 ,k\leq 10^5)$
每个人当观众$+a_i$,当选手$+a_{i,p}$。求最大值。
假设$dp[i][j]$,选了$i$个观众,$j$为所选$p$的二进制状态。
转移显然$O(pn^22^p)$
考虑观众尽可能选大的,那么观众的$a_i$从大到到小排序。如果当不了选手,前面的人一定当观众
假设$dp[i][j]$,选到了$i$个人,$j$为所选$p$的二进制状态,所选观众=$min(i-num_p,k)$,$num_p$二进制中$1$的个数。
这样贪心的转移,只需要$O(n2^pp)$
代码
1 |
|