#include<iostream>
#include<cstdio>
#include<cstring>
#define N 100005
using namespace std;
int Trie[N][];
int nodeN;
int main()
{
int t, n, i, j, isPrefix, flag;
char ph[];
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
isPrefix=;
nodeN=;
memset(Trie[], , sizeof(int)*);
for(i=; i<n; ++i)
{
scanf("%s", ph);
flag=;
int cur=;
if(!isPrefix)
for(j=; ph[j]; ++j)
{
int k=ph[j]-'';
if(!Trie[cur][k])
{
if(i!= && !flag)//利用第一个字符串建立一个初始的trie树
{
flag=;//建立了新节点(如果当前 cur 节点还有孩子说明没有公共前缀, 否则说明当前路已经走到了尽头,产生了公共前缀)
int c;
 for(c=; c<; ++c)//检查时候当前节点cur是否有孩子节点
      if(Trie[cur][c])
         break;
      if(c>=)
38       {
       isPrefix=; //没有孩子节点,则说明产生了公共前缀
        break;
     }
    }
Trie[cur][k]=++nodeN;
memset(Trie[nodeN], , sizeof(int)*);
}
cur=Trie[cur][k];
}
if(flag== && i!=)//如果不是第一个字符串,而且在遍历整个树的时候没有发现建立新的节点,则说明当前字符串必然是之前某个字符串的公共前缀
isPrefix=;
}
if(isPrefix)
printf("NO\n");
else printf("YES\n");
}
return ;
}
 /*
好不容易想用一下链表来写一下,还超时啊。。。。
*/
1 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
class Trie
{
public:
Trie *ch[];
Trie()
{
memset(ch, , sizeof(ch));
}
}; int main()
{
int t, n, i, j, isPrefix, flag;
char ph[];
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
Trie *root=new Trie();
isPrefix=;
for(i=; i<n; ++i)
{
scanf("%s", ph);
flag=;
Trie * cur=root;
if(!isPrefix)
for(j=; ph[j]; ++j)
{
int k=ph[j]-'';
if(!cur->ch[k])
{
if(i!= && !flag)
{
flag=;
int c;
for(c=; c<; ++c)
if(cur->ch[c])
break;
if(c>=)
{
isPrefix=;
break;
}
}
cur->ch[k]=new Trie();
}
cur=cur->ch[k];
}
if(flag== && i!=)
isPrefix=;
}
if(isPrefix)
printf("NO\n");
else printf("YES\n");
}
return ;
}

poj 3630 Phone List的更多相关文章

  1. POJ 3630 Phone List(trie树的简单应用)

    题目链接:http://poj.org/problem?id=3630 题意:给你多个字符串,如果其中任意两个字符串满足一个是另一个的前缀,那么输出NO,否则输出YES 思路:简单的trie树应用,插 ...

  2. poj 3630 Phone List(字典树)

    题目链接: http://poj.org/problem?id=3630 思路分析: 求在字符串中是否存在某个字符串为另一字符串的前缀: 即对于某个字符串而言,其是否为某个字符串的前缀,或存在某个其先 ...

  3. 【POJ 3630】 Phone List

    [题目链接] http://poj.org/problem?id=3630 [算法] 字典树 [代码] #include <algorithm> #include <bitset&g ...

  4. POJ 3630 , HDU 1671 Phone List - from lanshui_Yang

    这道题也是一道找前缀的问题,很自然地要用到Trie树,但是如果用动态Trie树(即用指针开辟内存)的话,虽然在HDU上可以过(可能是HDU的数据比较水),但在POJ上会TLE , 所以这道题只能用静态 ...

  5. HDU 1671 Phone List(POJ 3630)

    Phone List Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. POJ 3630 Phone List Trie题解

    Trie的应用题目. 本题有两个难点了: 1 动态建立Trie会超时,须要静态建立数组,然后构造树 2 推断的时候注意两种情况: 1) Tire树有133,然后插入13333556的时候.2)插入顺序 ...

  7. POJ 3630 Phone List(字符串前缀重复)题解

    Description Given a list of phone numbers, determine if it is consistent in the sense that no number ...

  8. poj 3630 Phone List 贪心

    Phone List Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 23722   Accepted: 7289 Descr ...

  9. poj 3630 Phone List trie树

    Phone List Description Given a list of phone numbers, determine if it is consistent in the sense tha ...

随机推荐

  1. jquery事件核心源码分析

    我们从绑定事件开始,一步步往下看: 以jquery.1.8.3为例,平时通过jquery绑定事件最常用的是on方法,大概分为下面3种类型: $(target).on('click',function( ...

  2. ASP.NET图形验证码的生成

    效果: 调用方法: int[] r = QAPI.VerifImage.RandomList();//取得随机数种子列 );//产生验证码字符 pictureBox1.Image = QAPI.Ver ...

  3. Cloud Engine:大杀器如何炼成

    郑昀(微博:http://weibo.com/yunzheng) 创建于2016/6/18 最后更新于2016/6/19 点击查看我的<如何从零搭建一个技术平台>,这是一个系列.转载时请注 ...

  4. java分享第十七天-01(封装操作xml类)

    做自动化测试的人,都应该对XPATH很熟悉了,但是在用JAVA解析XML时,我们通常是一层层的遍历进去,这样的代码的局限性很大,也不方便,于是我们结合一下XPATH,来解决这个问题.所需要的JAR包: ...

  5. zookeeper工作原理、安装配置、工具命令简介

    1.Zookeeper简介 Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等等. 2.zo ...

  6. 关于call和apply函数的区别及用法

    call和apply函数是function函数的基本属性,都可以用于更改函数对象和传递参数,是前端工程师常用的函数.具体使用方法请参考以下案列: 例如: 申明函数: var fn = function ...

  7. BJITJobs : 北京IT圈高端职位招聘信息,成功率最高的高端求职渠道

    你有实力,但比你差的人都升了,你的师弟都年薪50万了,你还是找不到机会.为什么你离高端机会总是差一步呢?其实你离成功就差一次机会,一个适合你的高端职位的信息! 招聘网站不靠谱:三大网站都是低端职位为主 ...

  8. form data和request payload的区别

    HTML <form> 标签的 enctype 属性 在下面的例子中,表单数据会在未编码的情况下进行发送: <form action="form_action.asp&qu ...

  9. 启动项目的时候报驱动错误: not support oracle driver 1.0

    问题:今天在使用pom导入oracle14的包时候发现怎么都下载不过来.网上查了一下发现是因为Oracle驱动需要官方授权,所以在pom.xml文件直接配置,无法下载成功. 解决方法就是下载oracl ...

  10. Ajax的js库分析简化版

    Ajax jquery的库的简化版本 (function(){    //面向外界的唯一变量接口!    var myajax = window.myajax = {};    //作者.版本号等等信 ...