摘要: 【题意】给定只含小写字母的字符串s,定义价值为回文子串的长度*出现次数,求最大价值。n<=3*10^5。 【算法】回文树 【题解】回文树上一个点的被访问次数是其作为最长回文子串的出现次数。 将fail边反向连接建树后,每个点的子树访问次数和就是这个回文子串的出现次数,可以dfs解决。 注意:要从-1 阅读全文
posted @ 2017-12-27 19:03 ONION_CYC 阅读(350) 评论(0) 推荐(1) 编辑
摘要: 【题意】给定长度为n的小写字母字符串S,求第k小子串。n<=5*10^5。 给定T,T=0时不同位置的相同子串算一个,T=1时算多个。 【算法】后缀自动机 【题解】对S建立SAM,T=0则每个节点算1次,T=1则每个节点算Right次,那么第k小就是dfs到恰好前k个的位置就是答案(SAM自带字典序 阅读全文
posted @ 2017-12-27 13:30 ONION_CYC 阅读(450) 评论(0) 推荐(1) 编辑
摘要: 【题目】B. GCD of Polynomials 【题意】给定n,要求两个最高次项不超过n的多项式(第一个>第二个),使得到它们GCD的辗转次数为n。n<=150。 【算法】构造 【题解】辗转n次是最坏情况——每次辗转至少会使被模数的最高次项变到模数的最高次项-1,也就是必须构造两个多项式满足这种 阅读全文
posted @ 2017-12-27 13:29 ONION_CYC 阅读(366) 评论(0) 推荐(1) 编辑
摘要: 【题意】给定长度为n的小写字母字符串,令Ti表示以i开头的后缀,求Σ[Ti+Tj-2*lcp(Ti,Tj)],1<=i<j<=n。 【算法】后缀自动机 【题解】Σ(Ti+Tj)只与n有关,那么关键在于计算Σ2*lcp(Ti,Tj)。 对逆序串建后缀自动机,其parent树就是原串的后缀树,lcp(T 阅读全文
posted @ 2017-12-27 08:57 ONION_CYC 阅读(295) 评论(0) 推荐(1) 编辑