摘要: [NOI2016]优秀的拆分 题目大意: 如果一个字符串可以被拆分为$AABB$的形式,其中$A$和$B$是任意非空字符串,则这种拆分方式是优秀的。给出一个长度为$n(n\le30000)$的字符串$S$,求其子串所有拆分方式中优秀拆分的总个数。 思路: 若用$f[i]$表示以$i$结尾的可以表示为 阅读全文
posted @ 2018-06-12 20:44 skylee03 阅读(107) 评论(0) 推荐(0) 编辑
摘要: [SDOI2008]Sandy的卡片 题目大意: 有$n(n\le1000)$个长度为$m_i(m_i\le100)$的序列序列中每个元素$a$满足$0\le a\le 1864$。定义两个串$A$和$B$是相似的当且仅当$|A|=|B|$且$A_i B_i$均相等。问所有序列的公共相似串最大长度。 阅读全文
posted @ 2018-06-12 17:03 skylee03 阅读(112) 评论(0) 推荐(0) 编辑
摘要: [JSOI2007]字符加密 题目大意: 给定一个长度为$n(n\le10^6)$的字符串$s$。对于$i\in[1,n)$,将$i$与$i+1$之间断开并交换分开的两段可以得到一个新的字符串。将$s$和所有这些新的字符串排序后,按顺序输出每个字符串最后一个字符。 思路: 将原串复制两遍构造后缀数组 阅读全文
posted @ 2018-06-12 14:46 skylee03 阅读(120) 评论(0) 推荐(0) 编辑
摘要: [UOJ35]后缀排序 题目大意: 对于给定的长度为$n(n\le10^6)$的字符串求后缀数组$sa[i]$和高度数组$lcp[i]$。 思路: 倍增+快排构造后缀数组,利用$rank[i]$求$lcp[i]$。时间复杂度$\mathcal O(n\log^2 n)$。 源代码: cpp incl 阅读全文
posted @ 2018-06-12 14:00 skylee03 阅读(80) 评论(0) 推荐(0) 编辑
摘要: [POJ3581]Sequence 题目大意: 给定序列$A_{1\sim n}$,其中$A_1$为最大的数。要把这个序列分成$3$个非空段,并将每一段分别反转,求能得到的字典序最小的序列。 思路: 对于第一段,由于$A_1$是最大的数字,因此我们可以将$A_{1\sim n}$翻转,用后缀数组求最 阅读全文
posted @ 2018-06-12 11:17 skylee03 阅读(102) 评论(0) 推荐(0) 编辑
摘要: [洛谷P3809]【模板】后缀排序 题目大意: 对于给定的长度为$n(n\le10^6)$的字符串求后缀数组$sa[i]$。 思路: 倍增+快排构造后缀数组。代码参考《挑战程序设计竞赛》。时间复杂度$\mathcal O(n\log^2n)$。 源代码: cpp include include in 阅读全文
posted @ 2018-06-12 08:21 skylee03 阅读(94) 评论(0) 推荐(0) 编辑