hdu 1671

Trie树,题目不难,但还是WA了一次,没有考虑后输入的字符串是前输入的字符串的前缀的情况,真是太粗心了。不过做了几道Trie树的题目以后,代码写得还是比较通用了,慢慢再改进吧

/*
* hdu1671/win.c
* Created on: 2011-8-19
* Author : ben
*/
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
#include
<math.h>

#define CHAR_NUM 10
#define BASE '0'

typedef
struct Trie {
unsigned
char isaend;
struct Trie * br[CHAR_NUM];
} Trie;

int flag;

Trie
* newTrieNode() {
int i;
Trie
* node = (Trie *) malloc(sizeof(Trie));
for (i = 0; i < CHAR_NUM; i++) {
node
->br[i] = NULL;
}
node
->isaend = 0;
return node;
}

void insert(Trie *root, char *str, int len) {
int i;
if (root->isaend) {
flag
= 0;
}
if (len <= 0) {
root
->isaend = 1;
for (i = 0; i < CHAR_NUM; i++) {
if(root->br[i]) {
flag
= 0;
return ;
}
}
return;
}
i
= (*str) - BASE;
if (!root->br[i]) {
root
->br[i] = newTrieNode();
}
insert(root
->br[i], str + 1, len - 1);
}

void destroy(Trie *root) {
int i;
for (i = 0; i < CHAR_NUM; i++) {
if (root->br[i] != NULL) {
destroy(root
->br[i]);
}
}
free(root);
}

void work() {
Trie
*root = newTrieNode();
int n;
char str[100];
scanf(
"%d", &n);
flag
= 1;
while (n--) {
scanf(
"%s", str);
insert(root, str, strlen(str));
}
if (flag) {
puts(
"YES");
}
else {
puts(
"NO");
}
destroy(root);
}

int main() {
#ifndef ONLINE_JUDGE
freopen(
"data.in", "r", stdin);
#endif
int T;
scanf(
"%d", &T);
while (T--) {
work();
}
return 0;
}

转载于:https://www.cnblogs.com/moonbay/archive/2011/08/19/2146199.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Redis Stream来做消息队列和在Asp.Net Core中的实现

Redis - Wikipedia写在前面我一直以来使用redis的时候&#xff0c;很多低烈度需求(并发要求不是很高)需要用到消息队列的时候&#xff0c;在项目本身已经使用了Redis的情况下都想直接用Redis来做消息队列&#xff0c;而不想引入新的服务&#xff0c;kafka和RabbitMQ等&#xff…

java基础代码下载_Java基础(一)(示例代码)

1. 概述1.1 什么是Java语言Java语言&#xff1a;面向对象的程序设计语言与机器无关的二进制格式的类文件Java虚拟机(用来执行类文件)完整的软件程序包(跨平台的API和库)1.1.1 Java语言特点语法简单&#xff0c;功能强大分布式与安全性与平台无关解释、编译两种运行方式多线程动…

windows挂载ext4_使用 UEFI 双启动 Windows 和 Linux | Linux 中国

这是一份在同一台机器上设置 Linux 和 Windows 双重启动的速成解释&#xff0c;使用统一可扩展固件接口&#xff08;UEFI&#xff09;。来源&#xff1a;https://linux.cn/article-12891-1.html作者&#xff1a;Alan Formy-duval译者&#xff1a;郑&#xff08;本文字数&#x…

Master DNS服务的搭建

很多企业都通过Linux来搭建自己的DNS服务器来提高网路效率&#xff0c;在此我们来学习如何搭建Master DNS服务器。首先&#xff0c;确定是否搭建yum仓库&#xff0c;并有软件包可用&#xff0c;如DVD光盘是否挂载。一、安装DNS服务所需要的软件包DNS所需要的软件包有&#xff1…

oh,我的老伙计,你看看这近五十个dapr视频

oh&#xff0c;我的老伙计&#xff0c;你看看这近五十个 dapr 视频。这不就是你想要的视频资料吗&#xff1f;快来捡走吧&#xff01;开始了&#xff0c;但是没完全开始 Dapr 是一个可移植的、事件驱动的运行时&#xff0c;它使任何开发人员能够轻松构建出弹性的、无状态和有状…

极速理解设计模式系列:2.观察者模式(Observer Pattern)

4个角色&#xff1a;被观察者(Subject/目标对象接口)&#xff0c;具体被观察者(ConcreteSubject/具体目标对象)&#xff0c;观察者(Observer)&#xff0c;具体观察者(ConcreteObserver) 被观察者(Subject/目标对象接口&#xff09;&#xff1a;目标对象的抽象接口 …

java try finally connectoin close_Java SocketChannel類代碼示例

本文整理匯總了Java中io.netty.channel.socket.SocketChannel類的典型用法代碼示例。如果您正苦於以下問題&#xff1a;Java SocketChannel類的具體用法&#xff1f;Java SocketChannel怎麽用&#xff1f;Java SocketChannel使用的例子&#xff1f;那麽恭喜您, 這裏精選的類代碼…

被娱乐在线报道的“唐骏造假门事件”

最近全球最热的是南非的世界杯&#xff0c;而在中国最近比较热的是另外一个事情。。。话说那天晚上回家已经很晚&#xff0c;照例的&#xff0c;家里的毛孩子歪歪斜斜的睡在床的角落里&#xff0c;一边是正在看节目的老婆吃着零食&#xff0c;我随便瞄了一眼&#xff0c;是新闻…

16年微软/腾讯云/华为云MVP是怎样炼成的

自由、创新、研究、探索&#xff0c;很难想象到一个IT大神的博客&#xff0c;会将“自由”放在第一位&#xff0c;也许这二字代表的&#xff0c;既是精神&#xff0c;又是情怀。搞微软技术的&#xff0c;大家或多或少都有听说过微软的“最有价值专家”&#xff08;MVP&#xff…

Dave Python 练习三 -- 对象

#encodingutf-8 #*************Part 1 : 对象 ****************** #Python 对象 #Python 使用对象模型来存储数据。构造任何类型的值都是一个对象。所有的Python 对像都拥有三个特性&#xff1a;身份&#xff0c;类型和值。 #身份&#xff1a; #每一个对象都有一个唯一的身份标…

java 注册驱动失败_java – JDBC驱动程序注册死锁?

在一个线程中,正在创建一个JackRabbit&#xff1a;"docs-on-startup" #32 prio5 os_prio0 tid0x00007f730d73e800 nid0x601d in Object.wait() [0x00007f725bffc000]java.lang.Thread.State: RUNNABLEat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Nat…

python3多线程queue_Python多线程(3)——Queue模块

Queue模块支持先进先出(FIFO)队列&#xff0c;支持多线程的访问&#xff0c;包括一个主要的类型(Queue)和两个异常类(exception classes)。Python 2 中的Queue模块在Python 3中更名为 queue。Queue对象的创建可以通过实例化Queue类型获得队列对象&#xff1a;创建新的队列&…

.NET中的设计模式---由吃龙虾想到的

作者: 倪大虾 发表于 2010-07-18 18:10 原文链接 阅读: 725 评论: 20今天吃小龙虾的时候忽然想到了以前一个湖北朋友讲的虾的故事.这位朋友是湖北人,据他说在他小时候他们那里很多虾,特别是夏天雨后,满地爬的都是.因为传说那是美国对付中国的秘密武器,居然没有人敢吃.后来偶然有…

【需要重视的BUG】:偷权限的情况

&#xff01;&#xff01;如果您生产环境用到了Blog.Core系统&#xff08;本文是我自己逻辑问题&#xff0c;和官方没关系哈&#xff09;&#xff0c;且没有做其他修改&#xff0c;且没有使用Ids4认证中心来授权认证&#xff0c;请看完本文&#xff0c;并即时做系统维护。-----…

Java实现文件过滤

Java实现文件过滤的方法&#xff0c;比如我只想获得某个路径下.java文件 只需要实现FilenameFilter这个接口即可。 比如&#xff1a; private class FileFilter implements FilenameFilter { public boolean accept(File dir, String name) { return name.en…

Angular运行在java_在本地运行现有Angular项目

我是Angular的新手&#xff0c;我正在尝试在我的机器上运行Angular的现有项目 . 我做了很多测试并且跟着很多文章 . 但无法运行我的项目 .我有这样的项目文件&#xff1a;我在我的系统上安装了nodejs . 并根据文章按照以下说明操作&#xff1a;将目录更改为我们的仓库cd myproj…

python作业题目用户输入行数、输出倒的等腰三角形_智慧职教云课堂APPPython程序设计(常州工业职业技术学院)作业期末考试答案...

在FANUC15系统中所采用的高分辨率绝对脉冲编码器&#xff0c;若每转输出脉冲数为100万个&#xff0c;最高允许转速10000r&#xff0f;min。如果当前和今后相当长一段时期&#xff0c;个人住房贷款市场中()将是一种主要的模式。A.多种机构的参与菱形ABCD中&#xff0c;AB2&#…

自找麻烦

2019独角兽企业重金招聘Python工程师标准>>> 真是想狗想的要发疯了&#xff0c;所以想买条狗&#xff0c;但是阿拉斯加&#xff0c;哈士奇&#xff0c;金毛&#xff0c;拉布拉多&#xff0c;苏牧&#xff0c;喜乐蒂现在我都买不起&#xff0c;他们都是很听话的狗&am…

Prism+WPF使用DependencyInjection实现AutoMapper的依赖注入功能

前言在使用PRISMWPF开发项目的过程中&#xff0c;需要使用AutoMapper实现对象-对象的映射功能。无奈PRISM没有相关对AutoMapper相关的类库&#xff0c;于是转换一下思想&#xff0c;在nuget 中存在有关使用Microsoft.Extensions.DependencyInjection来实现AutoMapper的依赖注入…

【机房真是】。。。各种蛋疼。。。

渣渣。。。呵呵。。。预流推进什么的。。。呵呵。。。。渣渣。。。渣渣。。。、、走了。。。 转载于:https://www.cnblogs.com/Aoi3x/archive/2011/09/07/2645360.html