• 福建省队集训 20180708


    福建省队集训 20180708

    分数就当爆零了吧,不想敲暴力,直接订正

    tetris

    set维护区间覆盖(均摊O(n),每个点只会被覆盖一次),然后就对两个形状有一个偏移量求重叠的高度取max

    好像直接bitset+记忆化就行了。猜不透他的复杂度,反正能过

    intensify

    容斥再总结:

    F为恰好满足所有这些条件,G为至少满足这些条件: (G_{S}=sum_{Sin T}F_{T},F_{S}=sum_{Sin T}-1^{|T|-|S|}G_T)

    所有条件等价:(G_i=sum_{j=i}^n {nchoose j}F_j,F_i=sum_{j=i}^n-1^{i-j}{nchoose j}G_j)

    这题里F为至少满足一个条件,并且所有条件等价,那么$ans=G_{emptyset}-F_{emptyset}=sum_n-1{nchoose j}G_j$

    具体来说,设$P(t)$为时间t仍然没有结束的生成函数,(P=sum_{t=1}^m p_t)

    [ p_t=sum_{i=1}^m(-1)^{i-1} {mchoose i}frac{f_{i,m-i}(t)}{m^t} ]

    m^t代表所有选择,$f_{i,j}(t)$表示t个回合中都强化前$i+j$项属性,所有方案的前 (i) 项属性都不满上限的概率之和。为什么要这么表示呢?因为可以递推:

    [ f_{0,j}(t)=j^t,f_{i,j}(t)=sum_{l=0}^{k-1}{tchoose l}w_l f_{i-1,j}(t-l) ]

    这个式子的意思是用l个回合强化i,$w_l$表示l个回合提升总等级小于k的概率,可以用简单dp

    然后$f_{i,j}(t)=F_{i,j}(t)*left(frac j m ight)^t$,$F_{i,j}(t)$是一个不超过im次的关于t的多项式(展开组合数)

    由插板法,

    [ egin{aligned} frac{1}{(1-x)^{m+1}}&=left(sum_{nleq 0}x^n ight)^{m+1}\ &=left(sum_{nge 0}inom{m+1+n-1}{n}x^n ight)\ &=sum_{nge 0}inom{m+n}{n}x^n end{aligned} ]

    那么

    [ sum_{t=0}^{infty}{tchoose k}a^t=left(frac 1{1-a} ight)^k*a^k ]

    相当于右移k位。

    这提示了我们将Fijt维护成组合数多项式的形式,

    [ egin{aligned} ans&=sum_{i=1}^m(-1)^{i-1}{mchoose i}sum_{t=0}^{infty}left(frac j m ight)^tsum_j^{infty}a_j{tchoose j}\ &=sum_{i=1}^m(-1)^{i-1}{mchoose i}sum_{j=0}^{infty}a_jsum_{t=0}^{infty}left(frac j m ight)^t{tchoose j} end{aligned} ]

    然后j其实没有那么多项,写$infty$只是为了交换方便,可以当成后面的a都是0,那么枚举j再结合上面的式子就能算了。

    关于维护组合数多项式,rqy在群里教的

    [ C(t,l) * C(t-l, k) = C(t,k+l) * C(k+l,k) ]

    后面的就看不懂了。

    今天又是无所事事的一天

  • 相关阅读:
    Animation Curve运动曲线
    Unity3D Collider类的信息传输Ontrigger*与OnCollision*
    springmvc拦截器的简单了解
    JDK中的注解简单了解
    面试加分项---HashMap底层实现原理
    springmvc参数绑定
    springmvc和struts2的区别
    修改tomcat的编码方式,可以解决某些get请求乱码问题
    springmvc 怎么响应json数据
    权限控制框架---shiro入门
  • 原文地址:https://www.cnblogs.com/lcyfrog/p/13039172.html
Copyright © 2020-2023  润新知