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;
}

最新文章

  1. iOS之 清理缓存
  2. [Scala] 快学Scala A3L3
  3. 内存管理 - MEMORY POOL
  4. 图片垂直居中 和 float
  5. MYSQL 判断一个时间段是否在另一个时间段内。
  6. SQL分页查询
  7. border:none;与border:0;的区别
  8. WF4.0 工作流设计器 传入参数问题记录?
  9. java中的[Ljava.lang.Object;@2a139a55问题
  10. Nginx/LVS/HAProxy负载均衡软件的优缺点详解
  11. Android播放视频
  12. A手机等的网络udp广播,收到广播以后回复udp消息
  13. 转: sqlserver常用sql语句,更改字段,建立唯一键,多个字段去重复等
  14. BBOSS框架使用jquery方式传參到后台的时候,要注意的事项
  15. Nginx 之四: Nginx服务器的压缩功能和缓存功能
  16. 求N!末尾的0的个数(找规律+递归)
  17. Min_25
  18. C语言实现程序跳转到绝对地址0x100000处执行
  19. 从零开始编写操作系统——bochs
  20. vim 介绍安装 复制 剪切 粘贴

热门文章

  1. Webcast / 技术小视频制作方法——自己动手录制video轻松搞定
  2. Net 并行知识学习
  3. 消息函数一般是私有的,因为不需要程序员显示的调用,但子类如果需要改写这个方法,则改成保护方法Protected
  4. 用ATL开发和部署ActiveX网页控件
  5. sublime_text 破解
  6. 14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
  7. premake 在64位Ubuntu系统下编译32位GCC程序
  8. HTML5文件上传还有进度条
  9. Lu核心库系统结构及输出函数
  10. J2EE 13规范(4)-JSP