POJ 3630 Phone List Trie题解
2024-10-18 18:29:02
Trie的应用题目。
本题有两个难点了:
1 动态建立Trie会超时,须要静态建立数组,然后构造树
2 推断的时候注意两种情况: 1) Tire树有133,然后插入13333556的时候。2)插入顺序倒转过来的时候
改动一下标准Trie数的插入函数就能够了:
#include <stdio.h>
#include <string.h> const int MAX_NODE = 100001;
const int MAX_WORD = 11;
const int ARR_SIZE = 10; struct Node
{
int n;
Node *arr[ARR_SIZE];
}; void clearNode(Node *p)
{
p->n = 0;
for (int i = 0; i < ARR_SIZE; i++)
{
p->arr[i] = NULL;
}
} Node pool[MAX_NODE];
int poolId; bool insertTrie(Node *trie, char nums[])
{
Node *pCrawl = trie;
int len = strlen(nums);
for (int i = 0; i < len; i++)
{
int j = nums[i] - '0';
//推断1: 情况: Trie有31199,插入311
if (i + 1 == len && pCrawl->arr[j]) return false;//注意这个easy遗忘条件
if (!pCrawl->arr[j])
{
pCrawl->arr[j] = &pool[poolId++];
clearNode(pCrawl->arr[j]);
}
pCrawl = pCrawl->arr[j];
if (pCrawl->n) return false;
}
for (int i = 0; i < ARR_SIZE; i++)
{//推断2: 情况: Trie有31199,插入311,和推断1是一样的,删除一个也可。 if (pCrawl->arr[i]) return false;
}
pCrawl->n++;
return true;
} int main()
{
int T, n;
scanf("%d", &T);
char word[MAX_WORD];
Node *trie = &pool[0];
while (T--)
{
clearNode(trie);
poolId = 1;
scanf("%d", &n);
getchar();
bool consistent = true;
for (int i = 0; i < n; i++)
{
gets(word);
if (consistent)
{
consistent = insertTrie(trie, word);
}
}
if (consistent) puts("YES");
else puts("NO");
}
return 0;
}
最新文章
- iOS之 清理缓存
- [Scala] 快学Scala A3L3
- 内存管理 - MEMORY POOL
- 图片垂直居中 和 float
- MYSQL 判断一个时间段是否在另一个时间段内。
- SQL分页查询
- border:none;与border:0;的区别
- WF4.0 工作流设计器 传入参数问题记录?
- java中的[Ljava.lang.Object;@2a139a55问题
- Nginx/LVS/HAProxy负载均衡软件的优缺点详解
- Android播放视频
- A手机等的网络udp广播,收到广播以后回复udp消息
- 转: sqlserver常用sql语句,更改字段,建立唯一键,多个字段去重复等
- BBOSS框架使用jquery方式传參到后台的时候,要注意的事项
- Nginx 之四: Nginx服务器的压缩功能和缓存功能
- 求N!末尾的0的个数(找规律+递归)
- Min_25
- C语言实现程序跳转到绝对地址0x100000处执行
- 从零开始编写操作系统——bochs
- vim 介绍安装 复制 剪切 粘贴
热门文章
- Webcast / 技术小视频制作方法——自己动手录制video轻松搞定
- Net 并行知识学习
- 消息函数一般是私有的,因为不需要程序员显示的调用,但子类如果需要改写这个方法,则改成保护方法Protected
- 用ATL开发和部署ActiveX网页控件
- sublime_text 破解
- 14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
- premake 在64位Ubuntu系统下编译32位GCC程序
- HTML5文件上传还有进度条
- Lu核心库系统结构及输出函数
- J2EE 13规范(4)-JSP