GDOI2017总结

本文是Semiwaker对2017年GDOI比赛的全面总结,涵盖三天的比赛和各个题目。Day1的T1题目涉及字符串替换,使用KMP算法解决;T2是树上的mex问题,采用DP解决。Day2的T1是最短路问题,通过SPFA解决,T2是汉明距离问题,利用桶来计算。Day3的T1和T2分别涉及战争次数计算和技能释放策略,需要深入理解问题并优化解决方案。

GDOI2017总结

By Semiwaker


总述:

分数

Day1 235
Day2 175
Day3 70

状态

Day1状态较好;Day2第一题居然出现了错误,有点头脑混乱;Day3完全不知在干什么。


题目

Day1

T1

题目大意

给出多个个字符串,按顺序进行字符串替换操作。
每一次给出一个替换规则a->b,从左到右匹配字符串中的a换成b,新生产的字符不参与当次替换。

题解

直接KMP。

考试状态

一开始看错题目,以为所有替换同时进行,只是优先做前面的,写了个AC自动机然后发现不对劲。应该把样例都看完再做的。耽误了比较多的时间。

T2

题目大意

给出一棵树,每个点有一个点权。对于每一个点x,求除了子树x之外的部分的mex。

题解

考虑哪些子树会把所有的 0 都删除?
所有的权为 0 的点的 LCA 到根的路径上每一个点都会,其他都不会。
类似,全部 1、2、3……都是如此。
那么我们在 0 的 LCA 标记上一个 0 , 1 的 LCA 标记上 1……
然后考虑某个点x的mex值,显然是它子树内最小的标记。
DP即可。

考试状态

面对5000字题面我选择看最后一段。
虽然很纠结是图还是树,但我觉得反正图不会做,就当它是树好了。
从A了这题这一点来开,这种心态还是有可取之处的。

T3

题目大意

给出一堆Trie,每次询问一个集合的最长公共子串。

题解

在Trie上建广义后缀自动机。
由于出题人卡在线(也就是按照 DFS 序建),所以要用 BFS 序建 SAM。

考试状态

写后缀数组的TLE了。
我考前还想着不会考SAM来着。

T4

题目大意

问正n边形三角划分后,能数出多少k边形?

题解

先选出一个k边形,然后再三角划分。
方案数为选出k边形后,切出来每一个部分分别三角划分的方案的乘积。
显然三角划分的方案为卡特兰数。
实际上就是卡特兰数的生成函数的k次卷积的第n-k项,再乘个k变形的三角划分方案数。
k次卷积可以用FFT+快速幂搞定。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值