I. String
题意
定义两个字符串不等为 $a\ne b \&\& a\ne rev(b) $
给一个字符串,问由它的子串构成的 任意两个元素都不等 的最大集合有多大
题解
显然答案为 $a,rev(a)$ 中本质不同的子串的数量除 2,注意若子串为回文串则只被计了一次,所以还需要加上一个 $a$ 中本质不同回文串的数量再除 2
代码
1 | int t1[N],t2[N],c[N],srank[N],height[N],sa[N]; |
定义两个字符串不等为 $a\ne b \&\& a\ne rev(b) $
给一个字符串,问由它的子串构成的 任意两个元素都不等 的最大集合有多大
显然答案为 $a,rev(a)$ 中本质不同的子串的数量除 2,注意若子串为回文串则只被计了一次,所以还需要加上一个 $a$ 中本质不同回文串的数量再除 2
1 | int t1[N],t2[N],c[N],srank[N],height[N],sa[N]; |