福建省队集训 20180708
分数就当爆零了吧,不想敲暴力,直接订正
tetris
set维护区间覆盖(均摊O(n),每个点只会被覆盖一次),然后就对两个形状有一个偏移量求重叠的高度取max
好像直接bitset+记忆化就行了。猜不透他的复杂度,反正能过
intensify
容斥再总结:
F为恰好满足所有这些条件,G为至少满足这些条件: \(G_{S}=\sum_{S\in T}F_{T},F_{S}=\sum_{S\in T}-1^{|T|-|S|}G_T\),
所有条件等价:\(G_i=\sum_{j=i}^n {n\choose j}F_j,F_i=\sum_{j=i}^n-1^{i-j}{n\choose j}G_j\)
这题里F为至少满足一个条件,并且所有条件等价,那么\(ans=G_{\emptyset}-F_{\emptyset}=\sum_{j=1}^n-1^{j-1}{n\choose j}G_j\)
具体来说,设\(P(t)\)为时间t仍然没有结束的生成函数,\(P=\sum_{t=1}^m p_t\)
m^t代表所有选择,\(f_{i,j}(t)\)表示t个回合中都强化前\(i+j\)项属性,所有方案的前 \(i\) 项属性都不满上限的概率之和。为什么要这么表示呢?因为可以递推:
这个式子的意思是用l个回合强化i,\(w_l\)表示l个回合提升总等级小于k的概率,可以用简单dp
然后\(f_{i,j}(t)=F_{i,j}(t)*\left(\frac j m\right)^t\),\(F_{i,j}(t)\)是一个不超过im次的关于t的多项式(展开组合数)
由插板法,
那么
相当于右移k位。
这提示了我们将Fijt维护成组合数多项式的形式,
然后j其实没有那么多项,写\(\infty\)只是为了交换方便,可以当成后面的a都是0,那么枚举j再结合上面的式子就能算了。
关于维护组合数多项式,rqy在群里教的
后面的就看不懂了。
今天又是无所事事的一天