HDU 1251 简单解法

这道题我是按照大白书(算法竞赛入门指南)的思想来的,经典的Trie树,不会用C++  所以那C写的  

定义了一个二维数组来存储node节点  然后又用了一个num[MAX]来存储各个前缀的数量

一开始定义的MAX为10000;  果然RE了   他说只有一组测试  我以为随便写一个就好了  果然上当了 

以为算法写错了   后来该到了1000000 过了  下面是AC代码    看到别的小伙伴各种数据结构(好羡慕)

# include 
# include 
const int MAX = 1000000;
int node[MAX][30];
int val[MAX];
int num[MAX];
int mz=0;
void init(){
    mz=0;
    memset(node,0,sizeof(node));
    memset(val,0,sizeof(val));
    memset(num,0,sizeof(num));
}
void insert_trie(char * p,int len){
    int u=0;
    for(int i=0;i



你可能感兴趣的:(trie,面试)