摘要: 传送门 解题思路 设dp[i]为先i位能否被理解。 然后在AC自动机上匹配,若 num[j]&&dp[i-cnt[j]] 则 dp[i] 等于 1。(j为不断fail的指针) AC代码 #include<iostream> #include<cstdio> #include<cstring> #in 阅读全文
posted @ 2021-10-11 20:55 尹昱钦 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 先对所有的string跑一遍AC自动机。 用sum表示到达一个节点的收益,可以在求fail时顺便继承着fail节点的sum值。 然后在这个AC自动机上做dp即可。 设dp[i][j]为第i步走到AC自动机上的j号节点的最大分数,枚举转移到的点数转移即可。 AC代码 #include 阅读全文
posted @ 2021-10-11 19:46 尹昱钦 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 来pyyz过掉的第一题祭 一开始在前来个模板上改了改,发现T飞了。 看一下题解发现,因为标记不会清空,所以会被卡到O(ST)。 于是考虑优化。 因为AC自动机本质上是一个有向无环图,所以考虑每次更新答案时只更新到当前节点,最后拓扑排序遍历一遍图统计答案即可。 复杂度降到了O(S+T 阅读全文
posted @ 2021-10-11 15:59 尹昱钦 阅读(56) 评论(0) 推荐(0) 编辑