trie
EMber _
人但有追求,世界亦会让路。
展开
-
bzoj1212 L语言 trie
这题本来是想用AC自动机做的,结果发现好水啊,直接上那个trie都能过,,就是每一个单词去匹配那个文章。。。跑的还更快。。 #include<cstdio> #include<cmath> #include<cstring> #include<iostream> #include<algorithm> #define fo(i,a,b) for(int i=a;i<=b;i++) #define f原创 2017-02-15 20:55:30 · 333 阅读 · 0 评论 -
jzoj5363【NOIP2017提高A组模拟9.14】生命之树 trie+启发式合并
题意:有一颗树,每个点有一个权值和一个字符串,要求计算出以每个点的子树的贡献,贡献的定义是两个点权值的xor*两个点字符串的lcp。n<=1e5其实这题我第一眼就想到trie,但是我trie基本上没做过多少题,不会xor统计的那种科技(这个太基础了吧喂),然后就异想天开用了个SA,结果爆炸,调了半天调不出来,心情复杂。正解是trie合并。开两颗trie,一颗记录lcp,一颗记录每个子树内有多少个点的原创 2017-09-15 22:24:51 · 322 阅读 · 0 评论 -
51nod 1601 完全图的最小生成树计数 Trie+kruskal
题意:给定一个长度为n的数组a[1..n],有一幅完全图,满足(u,v)的边权为a[u] xor a[v] 求边权和最小的生成树,你需要输出边权和还有方案数对1e9+7取模的值。由于边权是xor得到,容易想到用trie统计。。 按照当前最高位0/1将当前区间内的点分成两个部分s/t,那么答案肯定是s的最小生成树+t的最小生成树+s-t的最小边,s-t最小边用trie统计,最小生成树递归处理。原创 2017-09-08 21:31:36 · 1642 阅读 · 0 评论 -
bzoj4567[Scoi2016]背单词 贪心+trie
这题的题意让我一直有放弃这题的念头。。。。。 大概就是说,加入一个单词,必须要先加入他的后缀,代价为最近加入的后缀和当前加入的下标差。 由于要加入后缀,用trie做就好了。 先把所有串加入进去,然后每个点和最近的后缀结束点连边,相邻的结束点之间连边,预处理出size,然后对于当前能加入的字串,选择一个size最小的加入,证明显然。#include<cstdio> #include<algori原创 2017-10-01 15:52:16 · 295 阅读 · 0 评论 -
JZOJ5397. 【NOIP2017提高A组模拟10.6】Biology trie+LCA/哈希
题意:求一些指定串的最长公共后缀,动态加入。傻逼题,被题意坑了,以为要求最长公共LCS。 hash入门题,二分长度以后判断一下是否所有串都相同。 trie+LCA也可以,不过麻烦一点。 trie+LCA:#include<cstdio> #include<algorithm> #include<cstring> #define fo(i,a,b) for(int i=a;i<=b;i++) #原创 2017-10-06 15:09:46 · 375 阅读 · 0 评论