摘要:
题目大意:给一个字符串,假设长度为n,那么它就有n个后缀,求排名为i的字典序,并求出排序中相邻串的最长公共前缀。 题解:hash+二分(假设字符串从1开始) 如果将n个后缀字符串用sort排序,需要比较nlogn次,每次比较最差需要O(n),所以时间复杂度为O(n^2logn) 考虑将O(n)的比较 阅读全文
posted @ 2021-05-19 17:01
ANhour
阅读(74)
评论(0)
推荐(0)
摘要:
题目大意:n个字符串,求每个字符串的最长子回文串。 回文串:正着读和反着读是相同。 题解:二分最长回文串的长度,hash判断是否是回文串。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using 阅读全文
posted @ 2021-05-19 16:32
ANhour
阅读(68)
评论(0)
推荐(0)
摘要:
题目大意:字符串hash模板题 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define N 1000002 #define ull unsigned 阅读全文
posted @ 2021-05-19 16:23
ANhour
阅读(54)
评论(0)
推荐(0)
摘要:
题目大意:给N个串,问有无两个字符串有相同的循环同构串 题解: 方法一:hash+暴力判重 令每个字符的和与所有字符的积的和为字符串哈希值,相同同构串的哈希值一定相等。 然后哈希值相同串暴力判重。 方法二:两个字符串的循环同构则最小表示法相同。 #include<bits/stdc++.h> usi 阅读全文
posted @ 2021-05-19 16:07
ANhour
阅读(113)
评论(0)
推荐(0)
摘要:
一、最小表示法解决的问题:找到一个字符串的循环同构串中字典序最小的那个串。 二、字符串的循环同构: 比如长度为5字符串“abcde”,它的5个循环同构串有: abcde,bcdea,cdeab,deabc,eabcd;其中字典序最小的串为“abcde”。 三、求“abcde”的字典序最小的循环同构串 阅读全文
posted @ 2021-05-19 15:27
ANhour
阅读(168)
评论(0)
推荐(0)

浙公网安备 33010602011771号