【省选模拟】20/06/08

A A A

  • 考虑容斥,1表示钦定选,0 的位置表示 0/1 均合法,这样的好处是可以只考虑 1 的限制
    并且最后我们只需对超集容斥就可以得到答案
    发现钦定一些 1 选的意义就是在原图上选若干条不相交的链,复杂度和拆分数有关
    预处理一个集合有多少条链,那么就是一个子集卷积
    并且发现只用求出最后一项,所以可以 O ( 2 n ) O(2^n) O(2n) 暴力容斥回去
    复杂度 O ( n 2 2 n + p ( n ) 2 n ) O(n^22^n+p(n)2^n) O(n22n+p(n)2n) p ( n ) p(n) p(n) 为拆分数, C o d e Code Code

B B B

  • 考虑在 S l , r S_{l,r} Sl,r 的前后加字符,求的就是本质不同的方案数
    在前面的方案数对应的就是子树中后缀结点的 l e n u − l e n l i n k u len_u-len_{link_u} lenulenlinku
    下面要求出在后面加字符的方案数,用后缀数组求出本质不同的个数,启发式合并
    C o d e Code Code

C C C

  • 显然转移可以写成如下形式
    f i i = ∑ j = 1 i f j − 1 f i − j x min ⁡ ( j , i − j + 1 ) \frac{f_i}{i}=\sum_{j=1}^if_{j-1}f_{i-j}x^{\min(j,i-j+1)} ifi=j=1ifj1fijxmin(j,ij+1)
    发现项数是 750 左右,可以将其视为 O ( n ) O(n) O(n),复杂度 O ( n 3 ) O(n^3) O(n3)
    C o d e Code Code
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FSYo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值