zoukankan      html  css  js  c++  java
  • 字符串专题测试1 题解

    A. 阿尔法

    显然只要对位合并,最后查询不同的集合数就好了。

    似乎听过一个叫倍增并查集的东西,然而考场上没有$yy$出来。

    $f_{k,i}$表示点$i$以及$i$往后数$2^k$个元素共同被合并的祖先。

    对于合并操作,直接用ST表的思路合并即可。

    考虑最终的下传操作:

    枚举倍增的次幂数,设$i$向后$2^k$个元素的祖先为$f$。

    因为并查集美妙的性质,在$2^{k-1}$个元素意义下只要分别合并$i$与$f$,$i+2^{k-1}$与$f+2^{k-1}$就好了。

    B. 狗

    题意不清,就没什么好说的。

    C. 集合

    $n$个不同的数划分到若干个集合的方案数。

    一行第二类斯特林数的和,即贝尔数。

    有递推公式$B_{n+1}=sum limits_{i=0}^n inom{n}{i}B_i$。

    即钦定最后一个元素划分在最后一个集合中,选出一些元素划分为若干个集合,剩余的元素与最后一个元素划分在一起。

    容易发现这个玩意是卷积式,分治FFT就好了,当然用生成函数搞一搞之后多项式求逆也是可以的,当然直接用二项式反演求一行斯特林数搞也是可以的。

  • 相关阅读:
    100篇论文
    Tengine vs openresty
    Dottrace跟踪代码执行时间
    Linux Server
    Linux+Apache+Mysql+Php
    linux+nginx+mysql+php
    tshark命令行的使用(转)
    tcpdump VS tshark用法(转)
    Lua语言在Wireshark中使用(转)
    doc-remote-debugging.html
  • 原文地址:https://www.cnblogs.com/skyh/p/12134248.html
Copyright © 2011-2022 走看看