HDOJ 1251 统计难题 字典树
来源:互联网 发布:单片机复位原理 编辑:程序博客网 时间:2024/06/05 17:47
这题输入不习惯。处理输入废了不少时间。
在杭电oj上查看不少Accept提交的时间和空间,三叉树写的字典树无论是内存和时间上都优于大多数。
#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#include<stack>#include<vector>#include<cmath>#include<string>using namespace std;typedef int Nodelink;struct Node{Nodelink lson, subtree, rson; int count;char ch;}Node[1000010];int top;Nodelink newNode(char ch){Node[++top].ch = ch;Node[top].lson = Node[top].rson = Node[top].subtree = Node[top].count = 0;return top;}void insert(int root, char str[]){Nodelink p = root;int len = strlen(str);for(int i = 0; i < len; i++){while(Node[p].ch != str[i]){if(str[i] < Node[p].ch){if(!Node[p].lson)Node[p].lson = newNode(str[i]);p = Node[p].lson;}else {if(!Node[p].rson)Node[p].rson = newNode(str[i]);p = Node[p].rson;}}if(!Node[p].subtree)Node[p].subtree = newNode('\0');p = Node[p].subtree;Node[p].count ++;}}int find(int top, char str[]){int len = strlen(str);Nodelink p = top;for(int i = 0; i < len; i++){while(str[i] != Node[p].ch){if(str[i] < Node[p].ch)if(!Node[p].lson)return 0;else p = Node[p].lson;elseif(!Node[p].rson)return 0;else p = Node[p].rson;}if(!Node[p].subtree)return 0;else p = Node[p].subtree;}return Node[p].count;}int main(){char str[12];top = 0;char ch;newNode('\0');while(ch = getchar()){if(ch == '\n')break;intstp = 0;str[stp++] = ch;while(ch = getchar()){if(ch == '\n')break;str[stp++] = ch;}str[stp] = '\0';insert(1, str);}int stp = 0;while(~scanf("%s", str)){stp = 0;stp = find(1, str);printf("%d\n",stp);}return 0;}
0 0
- HDOJ 1251 统计难题 字典树
- [HDOJ 1251] 统计难题 [字典树]
- HDOJ 1251 统计难题 字典树
- hdoj 1251 统计难题 【字典树】
- HDOJ 1251 统计难题(字典树)
- HDOJ 统计难题 1251 【字典树】
- hdoj-1251-统计难题(字典树)
- hdoj--1251--统计难题(字典树)
- HDOJ 1251 统计难题 (字典树)
- HDOJ 1251 统计难题(字典树)
- HDOJ 1251-统计难题【模板:字典树】
- hdoj 1251 统计难题(字典树)
- hdoj-1251统计难题(字典树)
- HDOJ 题目1251统计难题(字典树,模板)
- hdoj 1251 统计难题(经典字典树)
- hdoj 统计难题 1251 (字典树模板)
- hdoj 1251 统计难题【字典树 基础题】
- hdoj 1251 统计难题【字典树--模板-增-查】
- dllexport和.def导出函数区别
- python inspect模块解析
- unixbench安装及使用
- Java学习系列(十四)Java面向对象之细谈线程、线程通信(上)
- GrideViewDemo 九宫格
- HDOJ 1251 统计难题 字典树
- html5+javascript制作简易画板
- CListCtrl的InsertColumn无效,解决办法
- Java学习系列(十五)Java面向对象之细谈线程、线程通信(下)
- Linux系统合理规划您的硬盘分区
- indst(b,j)用法详解
- 素心向阳 人淡情浓
- NYOJ236 心急的C小加 【贪心】
- shape 画圆角图片,圆角位置在3.0版本以下和3.0以上取值相反的解决办法