HDU1251 统计难题
2016-09-03 20:51
239 查看
裸的字典树 复习一下
然而一开始还是敲错了细节
一个月以后的区域赛慌啊23333
然而一开始还是敲错了细节
一个月以后的区域赛慌啊23333
#include<iostream> #include<cstring> #include<cstdio> using namespace std; #define MAX 26 typedef struct Trie_node{ int count; struct Trie_node* next[26]; bool exist; }TrieNode; TrieNode map[10000000]; int num = 0; TrieNode *createTrieNode(){ TrieNode *temp = &map[num++]; temp->count = 1; for(int i=0;i<MAX;i++){ temp->next[i]=NULL; } return temp; } void insert(TrieNode **root,const char *str){ TrieNode *temp =*root; int i=0,k; while(str[i]){ k=str[i]-'a'; if(temp->next[k]){ temp->next[k]->count++; }else{ temp->next[k]=createTrieNode(); } temp = temp ->next[k]; i++; } } int search(TrieNode *root,char *str){ if(root==NULL) return 0; TrieNode *temp = root; int i=0,k; while(str[i]){ k=str[i]-'a'; if(temp->next[k]){ temp=temp->next[k]; }else return 0; i++; } return temp->count; } int main(){ TrieNode *root = createTrieNode(); char str[20]; while(gets(str),strcmp(str,"")) insert(&root,str); while(gets(str)){ printf("%d\n",search(root,str)); } return 0; }
相关文章推荐
- Android CTS Verifier Sensor Test Cases (2)
- Q4--重建二叉树
- eclipse如何搭载Tomcat服务器和mysql数据库
- exp imp 命令使用问题汇总
- Redis探索之旅(5)- 在Linux下将Redis注册成服务
- Manifest.mf文件内容详解
- 右移 int a=8; a>>1
- Android的权限检查
- 数据结构专题——线段树
- 初识微信公众号开发
- Java(继承训练)(求面积)
- 关于display的属性:block和inline-block以及inline的区别
- 《剑指offer》面试题63 二叉搜索树的第k个结点
- PAT(乙级)1006 1016. 部分A+B (15)
- SQL 遇到的问题
- php反射类 ReflectionClass
- Oracle 11g服务器结构
- 利用python进行数据分析-NumPy高级应用
- git查看code改动情况
- 坚持#第29天~今天独立开车来学校啦