TC 8712 PredictionCardGame 题解
TC 8712 PredictionCardGame 题解
可以二分答案\(k\),判定最终能否保证筹码数\(\geq k\)。
设\(g_{i,j}\)表示还有\(i\)个黑牌\(j\)个红牌,保证答案\(\geq k\)的最小的起始筹码数量。
也就是说需要知道\(g_{n,m}\)是否\(\leq c\)。
考虑\(g_{i,j}\)的转移:
-
\(\min(i,j)=0\),则\(g_{i,j}=\frac{k}{2^{\max(i,j)}}\)。
-
则考虑枚举下注金额\(x\in Z\),则\(g_{i,j}=\max(g_{i-1,j}+x,g_{i,j-1}-x)\)可以发现\(x\)最优取到\(\lfloor\frac{g_{i-1,j}+g_{i,j-1}}{2}\rfloor\)。同时可以发现\(g_{i,j}\geq|x|\),这个性质保证了这个看似不太对的转移的正确性。
然后时间复杂度为\(O(N^4)\),(算上二分和高精度的复杂度)。