杭电 HOJ 1251 统计难题 解题报告
2013-02-27 13:07
274 查看
初看以为很简单的。。。当然,直接数组保存单词然后遍历查询一定会超时。在网上搜索了一下,看到“字典树”的概念。自己也没看他的代码,但是却找到了方法了。
字母一共有26个。建立一个结构,里面保存一个大小为26的指针数组,然后读入单词,节点+1。额,看代码更清楚些
字母一共有26个。建立一个结构,里面保存一个大小为26的指针数组,然后读入单词,节点+1。额,看代码更清楚些
#include <iostream> #include <string> using namespace std; class word { public: word() { memset(s,0,sizeof(s)); num=0; } word *s[26]; int num; }; int main() { int i,len,t; char str[100]; word *head,*p; head=new word; while(cin.getline(str,sizeof(str)) && str[0]!='\0') { p=head; len=strlen(str); for(i=0;i<len;i++) { t=str[i]-'a'; if(p->s[t]==0) p->s[t]=new word; p=p->s[t]; p->num++; } } while(cin>>str) { p=head; len=strlen(str); for(i=0;i<len;i++) { t=str[i]-'a'; if(p->s[t]==0) { i=-1; break; } p=p->s[t]; } if(i==-1) cout<<0<<endl; else cout<<p->num<<endl; } }
相关文章推荐
- HDOJ-1251-统计难题 解题报告
- HDOJ 1251 统计难题——第二次用字典树AC题目,写一下解题报告
- HDU 1251 统计难题(解题报告)
- HDU1251 统计难题 解题报告--字典树
- 杭电1251 统计难题(字典树)
- 杭电 HOJ 3635 Dragon Balls 解题报告
- 杭电OJ 1251 统计难题 字典树入门
- 杭电 HOJ 1372 Knight Moves 解题报告
- 杭电 HOJ 1394 Minimum Inversion Number 解题报告
- 杭电 HOJ 2677 Dota all stars 解题报告
- 杭电1251统计难题
- 杭电 HOJ 1455 Sticks 解题报告
- 杭电1251 统计难题
- 杭电 HOJ 1016 Prime Ring Problem 解题报告
- 杭电 HOJ 2553 N皇后问题 解题报告
- 杭电 HOJ 1166 敌兵布阵 解题报告
- 杭电 HOJ 1588 Segment set 解题报告
- 杭电 HOJ 1548 A strange lift 解题报告
- 杭电1251--统计难题
- 【字典树】杭电1251 : 统计难题