
ACM_字典树
文章平均质量分 82
京城一十三
你在凝视深渊的时候 深渊也在凝视着你
展开
-
poj2418map或者字典树
题意: 给你一些串,然后求出每个串出现的概率。思路: 简单题目,做法也很多,我用字典树做了下,然后又用map做了下,其实这个题目我感觉直接排序一遍之后线性输出应该是最简单最快的(这个没敲),就是只是排序的时间复杂度而已O(n*log(n)*len)字典序的排序时间复杂度记得*len.字典树829MS#include#include#incl原创 2015-06-04 16:35:26 · 511 阅读 · 0 评论 -
3764树上的异或值(自己研究的静态字典树)
题意: 给一颗树,最多10W个点,然后每条边上都有一个权值,任意两点的权值是他们经过的边的异或值,问最大的权值是多少?(任意两点中最大的)思路: 首先突破口是要想到a^b=c^a ^c^b,那么任意两点的异或值就可以是他们到根节点的异或然后异或一下,so先把所有点到根节点的异或值求出来,这个好求,然后就是相当于给你n个值,让你在里面选择两个值异或起来最大原创 2015-05-04 22:38:00 · 633 阅读 · 0 评论 -
LA3942字典树+递推
题意: 给你一个字典,最多4000个单词,每个单词长度最多是100,然后给你一个串,问你这个子串可以被那些单词组合的组合数,比如字典里有4个单词a b ab cd,然后给你一个串abcd则abcd = a+b+cd,ab+cd一共两种组合。输出组合数对20071027取余(白书上写错了写的是20071207)思路: 我们可以找到一个递推公式,d[i] = s原创 2015-01-01 12:23:54 · 713 阅读 · 0 评论 -
hdu2482 字典树+spfa
题意: 给你一个地图,地图上有公交站点和路线,问你从起点到终点至少要换多少次公交路线。思路: 首先上面的题意说的和笼统,没说详细是因为这个题目叙述的很多,描述起来麻烦,下面说思路,做这个题首先我们要把起点和终点的坐标求出来,每次点击地图我都是记录当前现则框的坐上角坐标,最后确定图之后再加上给的x,y转换后的实际位置,这样就的到了精准的位置,然后建图,原创 2014-07-21 10:44:58 · 567 阅读 · 0 评论 -
hdu3460 字典树(打印机)
题意: 给你一些名字,让你用一台打印机去打印这些名字,打印机只有三个操作(1)打印的都是小写字母(2)每次可以在当前字母的后面加一位,或删除一位。(3)打印当前串问你最少多少步可以吧所有的名字都打完。思路: 这个题目首先要看懂题目,不然测试数据都模拟不过去,曾加一个字母,删除一个字母,打印,每一种都算是一步,首先我们把所有的字母都建在一棵树原创 2014-07-03 20:24:41 · 748 阅读 · 0 评论 -
hdu1305 字典树水题
题意: 给你一些字符串,然后问你他们中有没有一个串是另一个串的前缀。思路: 字典树水题,(这种水题如果数据不大(这个题目不知道大不大,题目没说估计不大),hash下也行,把每个串拆成len个串,然后map容器记录下就行了,不想存也行,最后迭代一下也能出来),回来说字典树,就是最简单的前缀判断应用,我写的结构体里面有3个量,n原创 2014-07-03 15:51:43 · 875 阅读 · 0 评论 -
hdu 4099 字典树 + 斐波那契
题意: 给你一个串(最长40位)问你这个串是斐波那契F(n) n 思路: 给的串最长40位,那么就直接把所有的斐波那契全求出来(每个要前40位,求的时候多求几位,省着精度出问题,不能全求出来,存不下)求出来后把他们建在一颗字典树里面,建树的时候注意开一个变量记住当前位置的这个字母最早出现的是第几个斐波那契数,然后对于每组原创 2014-06-23 18:15:33 · 619 阅读 · 0 评论 -
hdu4825 字典树 + 贪心
题意: 给你n个数,然后给你m组询问,每组询问给你一个数,输出n个数中与该数亦或的最大的那个数,输出的是被亦或的那个数,不是亦或后的结果。思路: 我用的是字典树+贪心,首先我们可以把前n个数拆成2进制,然后补全前导0,我是补成了34位,然后把他存在字典树中,对于每个询问,把他变成二进制,然后补全前导0,然后在把每一位都取反,在字典树上查找,查找的时候原创 2014-06-23 17:02:45 · 1274 阅读 · 0 评论 -
hdu 1298 字典树 + DFS (模拟T9文本输入)
题意: 给你一些按键顺序,让你输出每一步中概率最大的那个单词,这里的概率计算方法好好看看别弄错了,一开始就是因为弄错了,各种wa,比如 abc 1 ,ab 1,那么ab 的概率就是2 ,而不是4,一开始我误认为是所有单词累加后再把每个单词的每个字母累加作为当前单词的概率的,结果各种wa。思路: 先建一颗字典树,为了是节省内存,方便更新,和快速查询,其实h原创 2014-06-22 18:18:12 · 643 阅读 · 0 评论 -
hdu3724 字典树(商品条形码)
题意: 给你一堆商品的名字,然后给你一些条形码,问你这些条形码转换成的字符串的前缀在商品中出现的个数,条形码的每个字母是八个二进制数字,有两种数,大的是小的2倍,小的是0,大的是1,这里面的吴超是 *0.95---*1.05之间。思路: 显然是字典树,字典树处理前缀出现次数,先把所有字符串加到树里面,然后我们想办法吧这个二进制数字翻译成字母,其实很简单原创 2014-06-21 19:36:54 · 627 阅读 · 0 评论 -
hdu1671 字典树记录前缀出现次数
题意: 给你一堆电话号,问你这些电话号后面有没有相互冲突的,冲突的条件是当前这个电话号是另一个电话号的前缀,比如有 123456789 123,那么这两个电话号就冲突了,直接输出NO。思路: 说白了就是前缀匹配,也就是以当前字符串为前缀的字符串有几个,只要有一个或者更多那么就直接NO了,快速的判断前缀的问题我们可以直接字典树记录前缀,先把所有的字符串都存原创 2014-06-21 18:33:25 · 543 阅读 · 0 评论 -
hdu2846 字典树(带id的)
题意: 给你一些模式串,然后给你一些提问,每个提问是给你一个串,问你这个串在上面的模式串中出现的次数。思路: 一开始想到hash,但是因为用的是map,所以超时了,map的操作是有代价的,他本身还会排序的,所以超时了,想用vec结果还没弄出来这个类型hash["aaa"] = 1,最后只能字典树了,先想下字典树,字典树处理前缀的原创 2014-06-21 16:42:17 · 529 阅读 · 0 评论 -
hdu1247 字典树或者hash
题意: 给你一些串,问你哪些串是由其他两个串连接成的。思路: 我用了两种方法,一个是hash,hash的时候用map实现的,第二种方法是字典树,字典树我们枚举每个一字符串,查找他的每一位,如果当前这一位是某个单词的最后一个字母,那么就重新跑到树的根节点,继续搜,搜到最后一个字母的时候,如果当前的这个字母是某个单词的最后一个那么就输原创 2014-06-21 14:18:35 · 493 阅读 · 0 评论 -
hdu1251 hash或者字典树
题意:统计难题Problem DescriptionIgnatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的原创 2014-06-20 19:06:45 · 570 阅读 · 0 评论