HDOJ 1251 HDU 1251 统计难题 ACM 1251 IN HDU
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋
题目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=1251
题目描述:
统计难题
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)
Total Submission(s): 5025 Accepted Submission(s): 1853
注意:本题只有一组测试数据,处理到文件结束.
刚学字典树 ,也就是 trie 树, 教程很容易看明白, 1251 是一道很明显的 模板题, 看过 PPT 后 直接敲代码 1A.
第一次做, 顺便介绍下 trie树 :
字典树(Trie)是一种用于快速字符串检索的多叉树结构。其原理是利用字符串的公共前缀来降低时空开销,从而达到提高程序效率的目的。
它有如下简单的性质:
(1) 根节点不包含字符信息;
(3) 一棵m度的Trie或者为空,或者由m棵m度的Trie组成。
搜索字典项目的方法为:
(1) 从根结点开始一次搜索;
(2) 取得要查找关键词的第一个字母,并根据该字母选择对应的子树 并转到该子树继续进行检索;
(3) 在相应的子树上,取得要查找关键词的第二个字母,
并进一步选择对应的子树进行检索。
(4) 迭代过程……
(5) 在某个结点处,关键词的所有字母已被取出,则读取
附在该结点上的信息,即完成查找。
代码如下 :
当然也可以拿来做模板 ,
/*
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋
http://www.cnblog.com/MiYu
Author By : MiYu
Test : 1
Program : 1251
*/
#include <iostream>
using namespace std;
typedef struct dict DIC;
struct dict {
dict (){ n = 0; memset ( child , 0 , sizeof ( child ) ); }
void insert ( char *ins )
{
DIC *cur = this,*now;
int len = strlen ( ins );
if ( len == 0 ) return ;
for ( int i = 0; i != len; ++ i )
{
if ( cur->child[ ins[i] - 'a' ] != NULL )
{
cur = cur->child[ ins[i] - 'a' ];
cur->n ++;
}
else
{
now = new DIC;
cur->child[ ins[i] - 'a' ] = now;
now->n ++;
cur = now;
}
}
}
int find ( char *ins )
{
DIC *cur = this;
int len = strlen ( ins );
if ( 0 == len ) return 0;
for ( int i = 0; i != len; ++ i )
{
if ( cur->child[ ins[i] - 'a' ] != NULL )
cur = cur->child[ ins[i] - 'a' ];
else
return 0;
}
return cur->n;
}
private:
DIC *child[26];
int n;
};
char word[11];
int main ()
{
DIC dict;
while ( gets ( word ), strcmp ( word, "") != 0 )
dict.insert ( word );
char qur[11];
while ( scanf ( "%s",qur ) != EOF )
{
printf ( "%d\n",dict.find ( qur ) );
}
return 0;
}
转载于:https://www.cnblogs.com/MiYu/archive/2010/08/23/1806268.html
HDOJ 1251 HDU 1251 统计难题 ACM 1251 IN HDU相关推荐
- HDOJ 2526 HDU 2526 浪漫手机 ACM 2526 IN HDU
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=2526 题目描述: ...
- HDOJ HDU 1709 The Balance ACM 1709 IN HDU
//MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址 : http://acm.hdu.edu.cn/showproblem.php?pid=1 ...
- HDU 1251 统计难题(Trie模版题)
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Subm ...
- hdu 1251 统计难题 (字典树入门题)
1 /******************************************************* 2 题目: 统计难题 (hdu 1251) 3 链接: http://acm.hd ...
- HDU 1251 统计难题 字典树/STL
统计难题 Time Limit:2000MS Memory Limit:65535KB 64bit IO Format:%I64d & %I64u Description Ig ...
- hdu 1251 统计难题(trie树入门)
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Subm ...
- HDU 1251 统计难题
简单字典树 这是我初次接触字典树,代码的效率还不是很高,有什么建议,敬请指教 题目: 统计难题 Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写 ...
- hdu 1251统计难题
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Subm ...
- HDU1251 统计难题 【trie树】
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Subm ...
- hdu1251(统计难题)
这题就是一个字典树的模板题 统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Othe ...
最新文章
- 如何征服Webpack 4并构建一个出色的React应用
- 都996了,需求还是没法按时交付,怎么办?
- win10只有c盘怎么分区_磁盘分区:系统C盘空间不足怎么办?
- EXPLAIN 命令详解
- 混编ObjectiveC++
- dockerfile安装yum_Docker镜像-基于DockerFile制作yum版nginx镜像
- 【Microstation】第一章:Microstation三维模型构建概述
- 实现树状结构_组合模式 - 树状结构的优雅实现
- html5-table布局
- HTML5网站大观:10个精美的 HTML5 企业网站欣赏
- 经典排序算法(八)--选择排序Selection Sort
- python 类的细节
- CCS历代版本下载地址以及6.0以上版本添加软件仿真
- FastDFS原理介绍
- HTML实现W3school导航栏(附带重置样式表reset.css)
- 关于指针的面试题,指向字符串和字符数组的单指针,二级指针,三级指针的使用。
- java身份证号码验证
- 库存管理系统 mysql_access数据库库存管理系统
- 如何优雅的创建一个Java不可变对象类,JDK源码中也是这么干的!
- canvas实现简单进度条