上一页 1 ··· 36 37 38 39 40 41 42 43 44 ··· 63 下一页
摘要: XIV.[SDOI2016]生成魔咒 动态SA?这怎么办? 我们考虑往每个后缀后面全都加入一个数。很明显,如果这样搞的话,你必须每加入一个数后都要重新后缀排序,不太可能完成。 这时,我们发现,如果这不是加入一个数,而是加入一整条后缀,那就会轻松很多,一个平衡树就能搞定。 思考后会发现,如果我们将整个 阅读全文
posted @ 2021-04-01 10:40 Troverld 阅读(46) 评论(0) 推荐(0)
摘要: XIII.[BJWC2010]外星联络 和上题一样,没啥好说的,直接建出笛卡尔树即可。 代码: #include<bits/stdc++.h> using namespace std; int stk[500100],tp,L[500100],R[500100],id,pt; namespace S 阅读全文
posted @ 2021-04-01 10:38 Troverld 阅读(56) 评论(0) 推荐(0)
摘要: XII.[TJOI2015]弦论 题解 阅读全文
posted @ 2021-04-01 10:36 Troverld 阅读(44) 评论(0) 推荐(0)
摘要: XI.[APIO2014]回文串 题解 阅读全文
posted @ 2021-04-01 10:33 Troverld 阅读(47) 评论(0) 推荐(0)
摘要: X.[SCOI2012]喵星球上的点名 我居然做出了这题……难以置信! 首先,思路很明显是把所有串全怼一起(包括名字和询问串),加上分隔符,然后跑一遍后缀数组。 我们仍然可以用单调栈求出关于每个询问串与它相同的区间。即,如果以询问串为前缀的那个后缀的$rank$是$p$的话,它的合法区间$[L,R] 阅读全文
posted @ 2021-04-01 10:31 Troverld 阅读(60) 评论(0) 推荐(0)
摘要: IX.[JSOI2007]字符加密 这题的思路非常简单——断环复制成链,然后直接后缀排序一下即可。 为什么呢? 我们考虑两条后缀。假如它们在前$n$位中有所不同,显然它们之间的相对顺序不会有问题; 否则,假如它们前$n$位全都相同,则因为反正最后输出的就是最后一个字符,所以相对顺序没有影响,直接按照 阅读全文
posted @ 2021-04-01 10:29 Troverld 阅读(63) 评论(0) 推荐(0)
摘要: VIII.[SDOI2008]Sandy的卡片 ……有什么意义吗…… 差个分,然后就是IV.[POI2000]公共串的内容了,套个单调队列,$O(n)$解决,假如你用DC3的话。 代码: #include<bits/stdc++.h> using namespace std; int all,n,m 阅读全文
posted @ 2021-03-31 16:58 Troverld 阅读(51) 评论(0) 推荐(0)
摘要: VII.[HAOI2016]找相同字符 第一道自己做出的SA题祭~~~ 实际上和上一题没啥区别的说…… 我们发现,这题实际上就是对于两个串中所有的后缀求$\operatorname\(之和(因为这两个后缀共有\)\operatorname$个前缀是相同的,即串中有这么多子串是相同的)。 老套路,俩串 阅读全文
posted @ 2021-03-31 16:57 Troverld 阅读(69) 评论(0) 推荐(0)
摘要: VI.[AHOI2013]差异 \(\sum\limits_{1\leq i<j\leq n}\text{len}(T_i)+\text{len}(T_j)-2\times\text{LCP}(T_i,T_j)\) 这个柿子可以拆成两部分,即 \(\sum\limits_{1\leq i<j\leq 阅读全文
posted @ 2021-03-31 16:55 Troverld 阅读(50) 评论(0) 推荐(0)
摘要: V.UVA11107 Life Forms 这题同上题类似,只不过把“在全部串中出现”变成了“在超过一半(即$\left\lfloor\dfrac{2}\right\rfloor+1$)个串中出现”。 这题中我的方法是上题中提到的“two-pointers+单调队列”算法。第一遍跑求出所有满足“出现 阅读全文
posted @ 2021-03-31 16:54 Troverld 阅读(61) 评论(0) 推荐(0)
上一页 1 ··· 36 37 38 39 40 41 42 43 44 ··· 63 下一页