字典树
wangqianqianya
这个作者很懒,什么都没留下…
展开
-
01字典树解决位运算问题
01字典树能很好求异或最值解决的问题如:求一组数据中异或和最大的两个数。步骤:1、将输入数据按位插入到01字典树中(二叉树)2、遍历每个数x,由贪心,从高位到低位遍历第i位,优先选择第i位与x不同的数(因为是二进制数,后面所有位都为1的值都会小于该位为1,后面位全为0的值)。模板const int MAXN=10005;//待插入数据量int tol; //节点个数...原创 2019-03-31 09:35:11 · 288 阅读 · 0 评论 -
回文自动机
将字符一次插入,统计不同回文串的数目tot,每种回文串的长度len[i],每种回文串的个数cnt[i]一个节点表示一个回文串。tot:节点个数,即不同回文串的个数。两棵树,节点为0,1,所以最后计数时从2开始n:添加的字符个数last:新添加一个字母后所形成的最长回文串表示的节点nxt[i][c]:节点i表示的回文串在两边添加字符c后变成的回文串编号(儿子)cnt[i]:节...原创 2019-07-27 20:14:06 · 136 阅读 · 0 评论