HDU 多校 Contest #3 简单记录

A

每次询问 S a . . . b , S c . . . d S_{a...b},S_{c...d} Sa...b,Sc...d,保证是回文串,表示询问哪个更优秀
优秀的定义是每次随机字符,随出来的串长期望最短

  • 首先是歌唱王国,我们设匹配到就结束的 GF 是 F ( x ) F(x) F(x),匹配到后不结束的 GF 为 G ( x ) G(x) G(x)
    那么求的就是 F ′ ( 1 ) F'(1) F(1),根据定义可以列出恒等式: F ( x ) + G ( x ) = x G ( x ) + 1 F(x)+G(x)=xG(x)+1 F(x)+G(x)=xG(x)+1
    以及 G ( x ) ( 1 m x ) L = ∑ i = 1 L e x i s t i F ( x ) ( 1 m x ) L − i G(x)(\frac{1}{m}x)^L=\sum_{i=1}^Lexist_iF(x)(\frac{1}{m}x)^{L-i} G(x)(m1x)L=i=1LexistiF(x)(m1x)Li F ( 1 ) = 0 F(1)=0 F(1)=0
    对第一个式子求导, F ′ ( 1 ) = G ( 1 ) F'(1)=G(1) F(1)=G(1),代入第二个式子,得到 G ( 1 ) = ∑ i = 1 L e x i t s t i m i G(1)=\sum_{i=1}^Lexitst_im^i G(1)=i=1Lexitstimi
  • 那么这道题只需要比较 b o r d e r border border 的字典序, p a m pam pam 即可

C

  • 简单题,每个颜色处理一下就稳了

D

  • 显然只会从最近的一个端点转移

E

  • 枚举每个联通块减掉,并查集维护即可

F

  • 对于卡着上限的直接压拆分数,否则我们枚举最大值的个数进行 d p dp dp,枚举每个数填的个数,用组合数进行转移

G

  • 显然会删最短路上的边,边权随机故暴力枚举

H

  • 思路很妙啊,展开成用等边三角形平成的平面,那么就是求一条射线与边的第 k k k 个交点的时间

I

  • 用栈维护括号序列,必须放的时候贪心放进去

J

  • 只用记另一维是什么, d p i + 1 , j = d p i , j + d i s t ( i , i + 1 ) , d p i + 1 , i = min ⁡ d p i , j + d i s t ( j , i + 1 ) dp_{i+1,j}=dp_{i,j}+dist(i,i+1),dp_{i+1,i}=\min dp_{i,j}+dist(j,i+1) dpi+1,j=dpi,j+dist(i,i+1),dpi+1,i=mindpi,j+dist(j,i+1)
    前面的整体打标记,后面的把绝对值拆开分治进行 d p dp dp 就可以了

H

  • q = 1 − p q=1-p q=1p,设答案的生成函数是 F ( x ) = ∑ i = 0 n a i x i F(x)=\sum_{i=0}^na_ix^i F(x)=i=0naixi,则
    F ( x ) = ∑ t = 0 ∞ q t p ( q t + 1 + ( 1 − q t + 1 ) x ) c − 1 ( q t + ( 1 − q t ) x ) n − c = ∑ t = 0 ∞ q t p ∑ i = 0 c − 1 ( c − 1 i ) q i ( t + 1 ) ( 1 − x ) i ∑ j = 0 n − c ( n − c j ) q j t ( 1 − x ) j x n − 1 − i − j = p ∑ i = 0 c − 1 ∑ j = 0 n − c ( c − 1 i ) ( n − c j ) ( 1 − x ) i + j x n − 1 − i − j q i 1 − q i + j + 1 F(x)=\sum_{t=0}^{\infty}q^tp(q^{t+1}+(1-q^{t+1})x)^{c-1}(q^t+(1-q^t)x)^{n-c}\\=\sum_{t=0}^{\infty}q^tp\sum_{i=0}^{c-1}\binom{c-1}{i}q^{i(t+1)}(1-x)^{i}\sum_{j=0}^{n-c}\binom{n-c}{j}q^{jt}(1-x)^jx^{n-1-i-j}\\=p\sum_{i=0}^{c-1}\sum_{j=0}^{n-c}\binom{c-1}{i}\binom{n-c}{j}(1-x)^{i+j}x^{n-1-i-j}\frac{q^i}{1-q^{i+j+1}} F(x)=t=0qtp(qt+1+(1qt+1)x)c1(qt+(1qt)x)nc=t=0qtpi=0c1(ic1)qi(t+1)(1x)ij=0nc(jnc)qjt(1x)jxn1ij=pi=0c1j=0nc(ic1)(jnc)(1x)i+jxn1ij1qi+j+1qi

  • 求出 G i + j = ∑ i ∑ j ( c − 1 i ) ( n − c j ) q i G_{i+j}=\sum_i\sum_j\binom{c-1}{i}\binom{n-c}{j}q^i Gi+j=ij(ic1)(jnc)qi
    那么就是求
    F ( x ) = p ∑ k = 0 n G k ( 1 − x ) k x n − 1 − k 1 1 − q k + 1 = p ∑ k = 0 n ∑ t ≤ k ( k t ) ( − 1 ) k − t x n − 1 − t G k 1 − q k + 1 F(x)=p\sum_{k=0}^nG_k(1-x)^kx^{n-1-k}\frac{1}{1-q^{k+1}}\\=p\sum_{k=0}^n\sum_{t\le k}\binom{k}{t}(-1)^{k-t}x^{n-1-t}\frac{G_k}{1-q^{k+1}} F(x)=pk=0nGk(1x)kxn1k1qk+11=pk=0ntk(tk)(1)ktxn1t1qk+1Gk
    是个卷积

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FSYo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值