
ACM_字典树
文章平均质量分 74
逍遥丶綦
这个作者很懒,什么都没留下…
展开
-
dp+trie nbut1222 English Game
传送门:点击打开链接题意:告诉你一个字典,每个单词有一个权值,再给你一个字符串,问这个字符串用字典中的单词不重复字母的覆盖,最大权值是多少。一个单词可以重复出现思路:先如果不考虑单词匹配,那么就是一个单纯的dp,dp[i]表示前i个已被完全覆盖此时的权值大小,如果在i位置后面有一个单词的长度为l,权值是w,且此时在i位置后长度为l的子字符串就等于那个单词,说明那个单词能放在这个位置,就有d原创 2015-08-21 23:09:47 · 1039 阅读 · 0 评论 -
Trie树 hdu3460 Ancient Printer
大概的意思就是模拟输入顺序,,然后最少要按多少次键仔细分析一下题目就可以发现:1.输出的次数就等于n2.如果建一个Trie树,因为最后可以保留一个单词而没必要删除它,所以除了这个单词的节点只被输入了,其他的节点都被输入了一次,和删除了一次所以就能得到答案 Trie树节点数*2-最长单词长度+n#include#include#include#include#inclu原创 2015-08-09 20:45:02 · 852 阅读 · 0 评论 -
Trie树 hdu4825 Xor Sum
题意:给你一些数字,再询问Q个问题,每个问题给一个数字,使这个数字和之前给出的数字的异或和最大。构造字典树,高位在前,低位在后然后顺着字典树根向深处递归查询#include#include#include#include#include#include#include#include#include#include#includeusing namesp原创 2015-08-08 13:51:02 · 1439 阅读 · 0 评论 -
Trie树 hdu4287 Intelligent IME
题意:告诉你手机按键对应了哪些字母,然后再告诉你一些单词问按对应的数字对应了多少个给出的单词思路:将单词构造成字典树,然后用对应的数字在字典树上查询#include#include#include#include#include#include#include#include#include#include#includeusing namespace原创 2015-08-08 13:47:47 · 853 阅读 · 0 评论 -
字典树 hdu5269 ZYB loves Xor I
把每个数字按照低位在前高位在后插入到字典树中那么从低位开始,根节点的左边代表0,右边代表1,如果左右两边都有,那么就是左边的数量*右边的数量*F[cnt]然后对左边和右边分治就可以得到答案了#include#include#include#include#include#include#includeusing namespace std;typedef lon原创 2015-06-13 21:45:52 · 1421 阅读 · 1 评论 -
trie+dp+打印路径 Codeforces633C Spy Syndrome 2
传送门:点击打开链接题意:原本有一个串有许多单词,中间用空格隔开,后来把单词全部转换成小写,然后翻转,再把中间的所有的空格全部去掉,就得到了一个全是小写字母组成的串。现在告诉你这样的串,并告诉你字典,要你找出一种满足条件的原串,保证有解。思路:第一眼感觉有点像AC自动机,,,但是仔细看了下数据范围,10000*1000也只有1000w,加上CF的测评机跑很快,这个复杂度应该是可以接受的原创 2016-02-28 00:55:16 · 1068 阅读 · 0 评论 -
字典树合并 ifrog1028 Bob and Alice are playing numbers
传送门:点击打开链接题意:有3种运算符,选择两个数使用这种运算符,使得最后的答案最大。思路:xor的我们已经很熟练了,我们来讨论&和|&的话,如果1的个数>=2,那么我们就走1,否则,就把字典树的01合并,因为此时01的答案是一样的。|的话,我们需要先做一个预处理。把对于每一个节点,其1所对应的字典树复制到0所对应的字典树上去。这一步可以用DFS搞定,复杂度是T(n)=T(n/原创 2016-09-05 00:04:57 · 811 阅读 · 0 评论