【省选模拟】20/06/09

AA

  • 考虑求出循环节后就可以取模了
    直接 bsgsbsgs O(Tp)O(T\sqrt p) 可以得到 60pts60pts
    数列类似斐波那契,循环节可以直接求,证明
    复杂度 O(Tkp)O(Tk\sqrt p) 甚至可以 O(Tkp1/4)O(Tkp^{1/4})CodeCode

BB

  • 考虑一个组合意义,即确定排列和划分过后,每一段选择一对,若所有对都构成逆序对则产生 1 的贡献,对每个都为逆序对的概率进行计数,奇数位和奇数位的贡献可以简单计算,问题就是如何考虑偶数位和奇数位的贡献
    按大小关系可以建边,小的连向大的,那么偶数位可以串成一条链
    奇数位的贡献可以看成链上挂了若干个连入和连出的边,连出的边是没法搞的,按照氪金手游容斥
    考虑这颗内向树它合法的概率,钦定根为子树最大值,我们要做的就是对所有内向树合法的概率求和
    考虑这个概率是 1sizei\prod \frac{1}{size_i},而每次连出去一个奇数点相当将一个 1size\frac{1}{size} 改成 1,
    dpi,j,kdp_{i,j,k} 表示到 ii 分了 jj 段,子树大小为 kk 的概率之和(这对应着连出去的边有 kk 条),这里 1(k+i)!\frac{1}{(k+i)!} 的概率最后算上,那么容易发现
    dpi,j,k=dpl,j1,k12(il2)+dpl,j1,k1(t=1il(k+i+t)(ti+l))+{dpl,j1,k(il+12)dpl,j1,k1(t=1il(k+i+t)t)}dp_{i,j,k}=\sum dp_{l,j-1,k}\frac{1}{2}\binom{i-l}{2}+\sum dp_{l,j-1,k-1}(\sum_{t=1}^{i-l}(k+i+t)(t-i+l))\\+\{\sum dp_{l,j-1,k}\binom{i-l+1}{2}-\sum dp_{l,j-1,k-1}(\sum_{t=1}^{i-l} (k+i+t)t)\}
    O(n4)O(n^4),注意这里算的是所有排列中满足内向树合法的概率,而偶数位本身是排好序的,所以上述贡献要乘上 n!n!CodeCode

CC

  • 回文自动机统计每个串的最长回文后缀的所有没有出现过的前缀,出现过的前缀存在一个最大长度 lenlen,对应后缀数组上的一段区间,对这个长度二分即可,CodeCode
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章