【省选模拟】20/06/18

A A A

  • 大概就是考场思路,当时觉得细节太多没写完
    考虑从后向前 d p dp dp 出当前的合法长度,从前向后维护可能成为答案的串的集合,需要根据这个 d p dp dp 判一下合法性,注意到若一个串不是另一个的前缀一定可以删除一个
    串的集合是一个串和它的若干个前缀,用一个串和一个集合可以表示一个状态
    考虑当前的串拼接进去,需要把不是前缀的串给筛掉,发现只需要求当前串串头和答案串每个位置的 l c p lcp lcp,用 Z − a l g o r i t h m Z-algorithm Zalgorithm 解决
    反思了一下为啥我的做法细节麻人,就是我插入串的时候要弹前面的,弹后面的
    而题解求出了一个最小值(字典序相同长度大的小),所以只需要把集合中的点拿去更最小值比就可以快速更新, C o d e Code Code

B B B

  • 考虑限制是不经过两条直线( n n n 维空间),即 f i f_i fi 为第一次走到第一条直线不经过两条直线的方案数
    g i g_i gi 为第二条,记总方案数为 a i , b i , c i a_i,b_i,c_i ai,bi,ci 表示从 f f f 走到 f f f 上,从 f f f 走到 g g g,以及从 g g g 走到 f f f 上,进行容斥,容易写成生成函数的形式:
    F = A − A F − C G G = B − A G − B F F=A-AF-CG\\ G=B-AG-BF F=AAFCGG=BAGBF
    答案是 G G G 的末项,注意其中 A 0 = 0 A_0=0 A0=0,解出来多项式求逆即可, C o d e Code Code

C C C

  • z x y zxy zxy 的神仙做法,考虑对每个点求出它为一个端点的答案,枚举另一个端点,统计外面路径的个数,注意到可以 d s u   o n   t r e e dsu\ on\ tree dsu on tree 预处理子树内部或子树外部的方案数,点分,要加上链上挂的子树内部的路径条数,拆一下项就可以快速维护, 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、付费专栏及课程。

余额充值