hdu 1251
来源:互联网 发布:淘宝数据魔方软件 编辑:程序博客网 时间:2024/06/05 17:18
题目
根据字符串来建n叉树,就是字典树
一般为26叉树,一般题目的关键在于建树时维护的其他值
线段树时以线段作为一个一个的子节点,是二叉树。
字典树即为n叉树。
水题一枚,代码如下:
#include<iostream>#include<cstring>#include<cstdio>using namespace std;struct Trie{ int flag; Trie *next[26];};Trie *root;void buildTrie(char *str){ int len = strlen(str); Trie *p=root,*q; for(int i=0;i<len;i++){ int rt=str[i]-'a'; if(p->next[rt]==NULL){ q = new Trie; q->flag=1; for(int j=0;j<26;j++) q->next[j]=NULL; p->next[rt]=q; p=p->next[rt]; } else{ p->next[rt]->flag++; p=p->next[rt]; } }}int findTrie(char *str){ Trie *p=root; int len=strlen(str); for(int i=0;i<len;i++){ int rt=str[i]-'a'; p=p->next[rt]; if(p==NULL) return 0; } return p->flag;}int main(){ char str[15]; int i; root = new Trie; for(i=0;i<26;i++) root->next[i]=NULL; while(gets(str) && str[0]!='\0') buildTrie(str); memset(str, 0, sizeof(str)); while(~scanf("%s", str) ) { int ans = findTrie(str); printf("%d\n", ans); } return 0;}
- hdu 1251
- hdu 1251
- HDU 1251
- hdu 1251
- HDU-1251
- HDU 1251
- hdu 1251
- hdu-1251
- hdu 1251
- HDU 1251
- HDU 1251
- hdu 1251
- HDU 1251
- hdu 1251
- hdu 1251
- hdu 1251
- hdu-1251
- HDU 1251
- HDU-2072
- 线程学习
- 【Win7还原让文件失而复得】
- centos下 Apache、php、mysql默认安装路径
- NYoj 205 求余数[大数求余]
- hdu 1251
- centos关机与重启命令详解
- 线程学习2
- HDU1238 Substrings
- 很好的职业规划文章
- CentOS防火墙配置及关闭
- MC323收发流程
- 文件操作
- eclipse出现Exception in thread "main" java.lang.NoClassDefFoundError