一口气看了3集《Lady~》终于把拖了半年的烂尾楼给完工了~~一看3:40了...再一想~~擦~~今天整了一天的题还没整出来~~好吧~~AC了....写完睡..
搞Trie是因为看了Mtrix67关于矩阵乘法的日志中提到的AC自动机...AC自动机又必须熟悉Trie和KMP...KMP没啥问题..Trie没接触过..就所幸熟悉了下...
其实这个字典树也很简单...结构上来说是棵树...除了根节点..树上的每个点都代表着一个字母...从第二层出发(根节点不存数据)..每条由叶子节点路径上的点依次组成的字符串即为一个相当于字典里的单词(但不一定所有的单词都是第二层走到叶子,如果字典中的有包含关系...则可能从第二层到中间某点代表一个单词)...Trie里每个节点以及其孩子代表单词表里有当前位置是这个节点的字母下个位置是其孩子的字母的单词.....如用 akb ab abc air oricon orish 所构造出来的字典树为:
我觉得字典树关键的不是树的理解和树的意义....关键是如何来建树..首先是每个节点的定义
树上的每个点这样定义...因为每个点后面最多可能跟26个字母~~所以开个27厂的指针..这里用指针是因为这个建树每个点下到底会接上多少个是不清楚的而且差距比较大...而用动态来管理显然很节约空间也方便操作....这里的p是关于这道题而设置的..
建树过程...其实每个点先给26个指针就是判断很方便...如果下一个点前面已经开辟过了...就递归进去...如果没有~~那就开辟新点~~
回到这道题..是求要用最短的字符来代表字典中的单词.....这里解释用p的意思....我这里的每个点的p代表在建树时有多少个单词经过了这个点....那么再输出时...如果只有一个单词经过这个点..显然从第二层到这个点已经足够表示其单词了...但也要注意..或许一个单词走完了...所有点都是p>1的..那就只能用这个单词的全部来代表它~
Program:
分享到:
相关推荐
北大POJ2525-Text Formalization【TrieTree】 解题报告+AC代码+测试数据 http://hi.csdn.net/!s/XW4FQ3
北大POJ2513-Colored Sticks【TrieTree+MergeSet+EulerPath】 解题报告+AC代码
北大POJ2002-Squares 解题报告+AC代码
poj 1000 - 2000 部分题目 官方分类 poj 1000 - 2000 部分题目 官方分类
POJ1000-1299中的80题AC代码
北大POJ3253-POJ3253-Fence Repair【STL优先队列】 解题报告+AC代码
北大POJ1426-Find The Multiple【BFS+同余模】 解题报告+AC代码
北大POJ3020-Antenna Placement 解题报告+AC代码
这是魔兽世界终极版POJ的-测试数据,找了好久才找到的。 本来想设置为0积分,但是它居然自动收费(o_ _)ノ。 看传送门:https://pan.baidu.com/s/1cCIwW8psGDASu2JdZawG3Q
POJ3211--Washing Clothes
北大POJ3414-Pots 解题报告+AC代码
北大POJ2305-Basic remains POJ2305-Basic remains
北大POJ1321-Chess Problem POJ1321-Chess Problem
北大POJ1080-Human Gene Functions POJ1080-Human Gene Functions
北大POJ1159-Palindrome 解题报告+AC代码
poj 1000-3000部分代码 网上收集
POJ---1456.Supermarket测试数据及答案,题目描述:A supermarket has a set Prod of products on sale. It earns a profit px for each product x∈Prod sold by a deadline dx that is measured as an integral ...
POJ 1038--Bugs Integrated
POJ3036--Honeycomb Walk
北大POJ1258-Agri-Net【Prim】 解题报告+AC代码