[CSP-J2020] 优秀的拆分】的更多相关文章

[问题描述] 如果一个字符串可以被拆分为 AABB 的形式,其中 A 和 B 是任意非空字符串, 则我们称该字符串的这种拆分是优秀的. 例如,对于字符串 aabaabaa,如果令 A = aab, B = a, 我们就找到了这个字符串拆分成 AABB 的一种方式. 一个字符串可能没有优秀的拆分,也可能存在不止一种优秀的拆分. 比如我们令 A = a, B = baa,也可以用 AABB 表示出上述字符串:但是,字符串abaabaa 就没有优秀的拆分. 现在给出一个长度为 n 的字符串 S,我们需…
#219. [NOI2016]优秀的拆分 题意:求有多少AABB样子的子串,拆分不同的同一个子串算多个 一开始一直想直接求,并不方便 然后看了一眼Claris的题解的第一行就有思路了 如果分开,求\(f[i]\)以i结尾AA形式子串和\(g[i]\)以i开始AA形式子串 就可以套路了 使用常用技巧,枚举\(L=|A|\),AA子串一定覆盖了两个关键点,枚举更新就行了,对于区间加可以使用差分 其实这道题很好拿95分啊,\(O(n^2)\)用哈希判断就行了 #include <iostream>…
[BZOJ4650][NOI2016]优秀的拆分(后缀数组) 题面 BZOJ Uoj 题解 如果我们知道以某个位置为开始/结尾的\(AA\)串的个数 那就直接做一下乘法就好 这个怎么求? 枚举一个位置 枚举串的长度 直接暴力算就好啦 至于是否可行,用\(SA\)求\(lcp\)就好啦 这样就是\(95\)分 NOI这么好拿部分分的??? #include<iostream> #include<cstdio> #include<cstdlib> #include<c…
Time Limit: 30 Sec  Memory Limit: 512 MB Description 如果一个字符串可以被拆分为 AABBAABB 的形式,其中 AA 和 BB 是任意非空字符串,则我们称该字符串的这种拆分是优秀的.例如,对于字符串 aabaabaa,如果令 A=aabA=aab,B=aB=a,我们就找到了这个字符串拆分成 AABBAABB 的一种方式.一个字符串可能没有优秀的拆分,也可能存在不止一种优秀的拆分.比如我们令 A=aA=a,B=baaB=baa,也可以用 AAB…
来自F allDream的博客,未经允许,请勿转载,谢谢. 如果一个字符串可以被拆分为 AABB 的形式,其中 A和 B是任意非空字符串,则我们称该字符串的这种拆分是优秀的. 例如,对于字符串 aabaabaa,如果令 A=aab,B=a,我们就找到了这个字符串拆分成 AABB的一种方式. 一个字符串可能没有优秀的拆分,也可能存在不止一种优秀的拆分.比如我们令 A=a,B=baa,也可以用 AABB表示出上述字符串:但是,字符串 abaabaa 就没有优秀的拆分. 现在给出一个长度为 n的字符串…
比较有意思的一道后缀数组题.(小C最近是和后缀数组淦上了?) 放在NOI的考场上.O(n^3)暴力80分,O(n^2)暴力95分…… 即使想把它作为一道签到题也不要这么随便啊摔(╯‵□′)╯︵┻━┻ Description 如果一个字符串可以被拆分为 AABB 的形式,其中 A和 B是任意非空字符串,则我们称该字符串的这种拆分是优秀的. 例如,对于字符串 aabaabaa,如果令 A=aab,B=a,我们就找到了这个字符串拆分成 AABB的一种方式. 一个字符串可能没有优秀的拆分,也可能存在不止…
「NOI2016」优秀的拆分 这不是个SAM题,只是个LCP题目 95分的Hash很简单,枚举每个点为开头和末尾的AA串个数,然后乘一下之类的. 考虑怎么快速求"每个点为开头和末尾的AA串个数" 考虑枚举A的长度,然后在序列中每|A|个位置放一个关键点,这样每个AA至少都经过了一个关键点. 然后求相邻两个关键点的lcs,lcp,画画图匹配一下,可以把区间内的都求出来了. 可以Hash二分或者sa或者sam Code: #include <cstdio> #include &…
[NOI2016]优秀的拆分 https://www.lydsy.com/JudgeOnline/problem.php?id=4650 题解 如果我们能够统计出一个数组a,一个数组b,a[i]表示以i为结尾的AA串个数,b[i]表示以i开头的AA串个数,我们就可以O(n)的统计答案了. 我们开看这么一个算法. 先枚举A的长度len,然后按照A的长度把序列分成很多段,每段有一个代表点即这一段的第一个点. 然后枚举所有代表点l,再枚举r=l+len,求一下(1,l)和(1,r)的最长公共后缀,(l…
Problem Description 如果一个字符串可以被拆分为 \(AABB\) 的形式,其中 \(A\) 和 \(B\) 是任意非空字符串,则我们称该字符串的这种拆分是优秀的. 例如,对于字符串 aabaabaa,如果令 \(A = \mathrm{aab}\),\(B = \mathrm{a}\),我们就找到了这个字符串拆分成 \(AABB\) 的一种方式. 一个字符串可能没有优秀的拆分,也可能存在不止一种优秀的拆分.比如我们令 \(A=\mathrm{a}\),\(B=\mathrm{…
Description 题库链接 给你一个长度为 \(n\) 的只含小写字母的字符串 \(S\) ,计算其子串有多少优秀的拆分. 如果一个字符串能被表示成 \(AABB\) 的形式,其中 \(A,B\) 非空,那么称 \(AABB\) 是一个优秀的拆分.一个子串可能有多个优秀的拆分. 多组询问,询问组数 \(T\) . \(1\leq n\leq 30000,1\leq T\leq 10\) Solution 会用这题的方法的话,应该不难想. 如果记 \(s_{1_i}\) 为以 \(i\) 结…