HAOI2017选做

emmm…为什么叫选做呢?因为有一个题没做。。
没做的原因是因为不想看题了23333
来随便口胡一下做法??
感觉这套做得不是很认真。。那就不认真吧
感觉这套题做下来有点奇怪。。我也不知道哪里奇怪

「HAOI2017」新型城市化

最大的难点在于读题。。
一开始以为最大城市群指的是那个分配的最大城市群。。
然后猜了几个结论。。然后发现根本过不去。。
玩了下错的数据,发现看错题了。。
其实不是分配完的,就是最大城市群
那么就是二分图的最大独立集
因为是二分图,因此网络流之后看割边就好了

「HAOI2017」八纵八横

其实就是WC的xor和最大异或和的一部分合体。。
因为一开始且一直都是联通的,所以很好做

「HAOI2017」字符串

并不会做。。看了下题解,要用AC自动机
AC自动机是什么来着??
复习了一下AC自动机。。
一开始我想的是暴力枚举下一位不匹配,那么匹配的是什么
那么复杂度有一个 l e n ∗ ∣ 字 符 集 大 小 ∣ len*|字符集大小| len。。
然后发现题解有一个很高妙的做法
正串和反串一起建AC自动机,把fail树建出来
然后然原串在上面跑
考虑一个点 i i i,如果他的下一位不匹配,那么我们只需要让 i + k + 1 i+k+1 i+k+1之后的都匹配就可以了
也就是 i i i这个点在fail树的子树中,对于原串的每一个位置j,如果 j + k + 1 j+k+1 j+k+1的反串节点也在 i + k + 1 i+k+1 i+k+1的反串节点的fail子树,那么答案++
然后发现会有重复的,因为下一位不一定不匹配。。
考虑去重
就是处理到点i的时候,如果 i + k i+k i+k也是匹配的,那么答案–,也就是减去 i − 1 i-1 i1的贡献
要注意的是,两个部分要分开做。。也就是开两个树状数组或者分两次来做。。一开始因为这个自闭了

「HAOI2017」方案数

没做,咕了
不想看题了
看起来很diao的样子啊

「HAOI2017」供给侧改革

因为数据随机,因此,不同答案很少。。
或者说答案很小
可以发现,答案是一段一段的
一开始想的是,用那种分治的填法,一段一段填。。
然后我发现无法快速求date,然后就GG了
其实这个做法,本质上有的是答案段数很少,但是没有用到答案很小
有一个很高妙的做法
先按r排序,一个一个加入
就是建一颗字典树,维护一下每个后缀的前40位
就可以轻松地维护处长度为 i i i的lcp的最大所需要的 l l l
每一次求答案的时候把所有长度扫一次就好了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值