bool数组要排序,每次随机选2数来冒泡,求期望次数。
假设数组里有x个0,那么需要最后数组里左侧x个数都是0,以x数右侧为线,两侧本身内的移动对结果没有意义,左侧有x个数,初始有y个1,右侧就会有y个0,也就是y对的数需要swap,计为dp[y];如果要消除一个对, 概率为
左侧y种选择* 右侧y种选择 / 选出1对数 = y * y / C(n,2)
期望为反比 C(n,2) * inv(y) * inv(y)
for(i,1,y) ans += c(n,2) * inv(y) * inv*(y)