守卫者的挑战
这一道题目,我们不难想到用递推
把所有状态都给包含进去的话,就是设\(f[i][j][k]\)表示前\(i\)个挑战,赢了\(j\)次,还剩\(k\)容量的概率
但是这样复杂度显然爆炸(注意第三维不止取到\(2000\),因为可以继续获得背包容量),所以考虑压缩,我们发现\(N\)最大为\(200\),而每个碎片都是只占\(1\)个体积,所以说当某一时刻背包的体积已经大于\(n\)了,我们完全不用管这一维了
这个时候我们都是这么改状态:设\(f[i][j][k]\)表示前\(i\)个挑战,赢了\(j\)次,容量不小于\(k\)的所有情况的概率
然后就很好推了