const maxn=600008; len=24;var x,y,z,n,m,tot,lx,i:longint; sum:array[0..maxn] of longint; rt:array[0..maxn] of longint; time,l,r:array[0....
分类:
其他好文 时间:
2015-03-20 17:59:54
阅读次数:
115
题目:http://www.tsinsen.com/A1486题解: 其实看到和路径有关的就应该想到点分治。 我们找出重心之后遍历每一棵子树得到它的 { x=经过特殊点的个数,y=到rt的异或和} 然后我们按x排序,维护两个头尾指针不断把满足条件的加入trie,然后把左边的放进tr...
分类:
其他好文 时间:
2015-03-19 23:31:29
阅读次数:
249
传送门http://hihocoder.com/problemset/problem/1036Solution: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 struct Nod...
分类:
其他好文 时间:
2015-03-19 21:39:52
阅读次数:
194
AC自动机,其实就是Trie树与KMP的结合,且有dfa(有限状态机)的性质.
理解的关键点:
1. fail指针 起到回溯作用
2.每次匹配都是主串不动,移动指针now去回溯找后缀的前缀
3.一个优化点,将NULL指向root 编码更简单.
考察时一般也会问道dfa的性质.
AC自动机解决问题:
1.多模式串匹配
2.给定一个长度,满足XX条件能构造多少个.
ABCD ...
分类:
其他好文 时间:
2015-03-18 14:09:14
阅读次数:
138
题目大意给出一个序列,求[l, r]中的最大连续xor xor和。
强制在线思路先把整个序列分成n √ \sqrt{n}块,预处理每一块的开头到每个数字的最大连续xor xor和。这个我们只需处理出前缀xor xor和,之后用可持久化Trie树就可以搞定。这样询问的右边就是整块的了。剩下左边的随便暴力一下就能过了。。CODE#define _CRT_SECURE_NO_WARNINGS#inc...
分类:
其他好文 时间:
2015-03-17 22:00:38
阅读次数:
179
转自: http://www.cnblogs.com/ltang/archive/2010/11/25/1887573.html解题思路: 建立trie图,我们可以假设起点均为root节点,题目转化为求解root经过m步到达所有节点的总和 dp求解,如果存在i->j的路径,counter[m, .....
分类:
其他好文 时间:
2015-03-17 14:02:14
阅读次数:
141
题目链接题目描述 有n个电话号码,长度对多为10个,问存不存在一个电话号码是另一个的前缀,是就输出NO,否则YES。
1. n<10410^4
思路 Trie树裸题
1. 把所有字符串插入Trie树
2. 插入时进行以下判断:
a. 当前插入的字符串可以沿着Tries树中的某条路径一直往下走,不用新开节点:可能比这条路径表示的字符串长,即最后才新开节...
分类:
其他好文 时间:
2015-03-15 12:27:31
阅读次数:
178
整理一下思路,明天再写。。。#include #include #define LL __int64using namespace std;const LL inf=10000000000000ll;const int root=0;LL f[60],ans[60];int trie[550][10...
分类:
其他好文 时间:
2015-03-15 00:39:42
阅读次数:
150
ac自动机中,如果以trie中的节点为节点,(fail[i],i)为边,可以建立一颗树,该树有如下特点:“节点u是节点v的祖先 当且仅当 u代表的字符串是v代表的字符串的一个后缀”。(u代表的字符串是由根节点到u路径上所有的边代表的字符顺次组合成的,我们记作str(u))。本题中的每一个P都对应tr...
分类:
其他好文 时间:
2015-03-14 16:50:49
阅读次数:
150
在计算机科学中,trie,又称前缀树或字典树,是一种有种树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只.....
分类:
其他好文 时间:
2015-03-13 17:57:42
阅读次数:
106