当前位置: 首页 > news >正文

hdu 1671(字典树)

 1 /*
 2 *  字典树 
 3 */
 4 #include <cstdio>
 5 #include <cstring>
 6 #include <cstdlib>
 7 #include <iostream>
 8 
 9 using namespace std;
10 
11 const int N = 11;
12 
13 bool yes;
14 char str[N];
15 struct node {
16     bool flag;
17     node *child[10];
18     node() {
19         flag = false;
20         for (int i=0; i<10; ++i) child[i] = NULL;
21     }
22 }*root;
23 
24 void insert(char str[]) {
25     node *p = root;
26     int len = strlen(str);
27     for (int k,i=0; i<len; ++i, p=p->child[k]) {
28         k = str[i] - '0';
29         if (!p->child[k]) p->child[k] = new node();
30         else if (i == len-1) {yes = false; return;}
31         if (p->child[k]->flag) {yes = false; return;}
32     }
33     p->flag = true;
34 }
35 
36 void del(node *p) {//释放内存 
37     for (int i=0; i<10; ++i) {
38         if (p->child[i]) del(p->child[i]);
39     }
40     delete p;
41     p = NULL;
42 }
43 
44 int main() {
45     int t;
46     scanf ("%d", &t);
47     while (t--) {
48         int n;
49         scanf ("%d", &n);
50         yes = true;
51         root = new node();
52         while (n--) {
53             scanf ("%s", str);
54             if (yes) insert(str);
55         }
56         if (yes) puts("YES");
57         else puts("NO");
58         del(root);
59     }
60     return 0;
61 }

 

转载于:https://www.cnblogs.com/try86/archive/2012/05/08/2489469.html

相关文章:

  • ![CDATA[ ]] 是什么东东
  • 什么是web接口
  • ubuntu下usb转串口设置
  • Python+Nginx实现邮件POP、IMAP、SMTP代理配置介绍
  • cookie setCookie sessionId
  • C# CancellationTokenSource和CancellationToken的实现
  • 制作首页的显示列表。
  • AjaxToolKit之Rating控件的使用(http://www.soaspx.com/dotnet/ajax/ajaxtech/ajaxtech_20091021_1219.html)...
  • 运行java web项目时报错:Several ports (8005, 8080, 8009) required
  • 备忘,查询信号质量的AT
  • Json学习整理
  • 将hdfs 上的文件通过shell脚本 导入到hive上面
  • 浅谈双绞线在视频监控系统中的实际应用
  • [linux] C语言Linux系统编程进程基本概念
  • Solr部署到tomcat,通过war包
  • 深入了解以太坊
  • 【node学习】协程
  • 【个人向】《HTTP图解》阅后小结
  • 78. Subsets
  • go append函数以及写入
  • HomeBrew常规使用教程
  • iOS | NSProxy
  • iOS 系统授权开发
  • mongodb--安装和初步使用教程
  • scrapy学习之路4(itemloder的使用)
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • vue--为什么data属性必须是一个函数
  • 第2章 网络文档
  • 解析 Webpack中import、require、按需加载的执行过程
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端之Sass/Scss实战笔记
  • 网页视频流m3u8/ts视频下载
  • 【干货分享】dos命令大全
  • 阿里云ACE认证之理解CDN技术
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • #define 用法
  • #宝哥教你#查看jquery绑定的事件函数
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (Python第六天)文件处理
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (超详细)语音信号处理之特征提取
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (三)终结任务
  • ./和../以及/和~之间的区别
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET 发展历程
  • .Net 知识杂记
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net反编译的九款神器
  • .NET委托:一个关于C#的睡前故事
  • /etc/motd and /etc/issue
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法