POJ 3630 Phone List
题目大意:给n个字符串,问是否有一个是另一个的前缀
思路:把n个字符串插到trie里,然后判断就好,注意一个长字符串覆盖另一个短字符串和短字符串匹配长字符串的区别
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #define maxn 100009 5 using namespace std; 6 int siz=0,trie[maxn][20],n,end[maxn][20]; 7 char ch[maxn]; 8 bool insert(const char * str) 9 { 10 int len = strlen(str+1), u = 0,flag=1,en=0; 11 for(int i = 1; i <= len; u = trie[u][str[i++]-'0']) 12 { 13 if(!trie[u][str[i]-'0']) 14 { 15 trie[u][str[i]-'0']=++siz; 16 flag = 0; 17 } 18 else 19 { 20 if(end[u][str[i]-'0']==1) 21 { 22 en=1; 23 } 24 } 25 if(i==len) 26 end[u][str[i]-'0'] = 1; 27 } 28 if(en)return en; 29 return flag; 30 } 31 int main() 32 { 33 int t; 34 scanf("%d",&t); 35 while(t--) 36 { 37 scanf("%d",&n); 38 memset(trie,0,sizeof(trie)); 39 memset(end,0,sizeof(end)); 40 siz=0; 41 int flag = 0; 42 while(n--) 43 { 44 scanf("%s",ch+1); 45 if(insert(ch)) 46 { 47 flag = 1; 48 } 49 } 50 if(flag)puts("NO");else puts("YES"); 51 } 52 return 0; 53 }
转载于:https://www.cnblogs.com/philippica/p/4638503.html
POJ 3630 Phone List相关推荐
- POJ - 3630 Phone List(字典树)
题目链接:点击查看 题目大意:给出n个电话号码,问是否都能拨通,拨通的定义是不会存在一个电话号码是另一个电话号码的前缀 题目分析:因为涉及到了前缀,所以我们可以直接套字典树的板子上去,按照题意插入一遍 ...
- Phone List POJ - 3630(字典树模板题)
题意 给定 n个长度不超过 10的数字串,问其中是否存在两个数字串S,T ,使得 S是 T的前缀,多组数据. 题目 Given a list of phone numbers, determine i ...
- POJ 3630 Phone List [Trie]
判断是否有前缀...明显就是一个trie了...裸的不能再裸 注意用动态的trie额外分配内存的时候会TLE...所以就用静态的... 不过静态trie一开始还不太会用...不过后来感觉思路和静态邻接 ...
- POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)
本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...
- KMP Trie 例题讲解
文章目录 HDU 4763 Theme Section 题意: 题解: 代码: POJ 3630 Phone List 题意: 题解: 代码: HDU 3746 Cyclic Nacklace 题意: ...
- [PKU 3630] 字符串(二) {Trie 字典树}
{ 开始讨论字符串的问题 上一篇是转载Matrix67的KMP算法讲解 这一篇主要讨论Trie } Trie (发音Try) 是一棵用于存储多个字符串的多叉树 由于插入和查询都极为高效 又称字典树 树 ...
- POJ 3268 D-Silver Cow Party
http://poj.org/problem?id=3268 Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently ...
- poj 2559 Largest Rectangle in a Histogram 栈
// poj 2559 Largest Rectangle in a Histogram 栈 // // n个矩形排在一块,不同的高度,让你求最大的矩形的面积(矩形紧挨在一起) // // 这道题用的 ...
- POJ 2528 Mayor's posters(线段树)
题目大意 贴海报.每张海报的高度都是一样的,唯独宽度不一样.每张海报只能占用整数倍的单位线段长度,贴了 n(n<=10000) 张海报之后,有几张能够看见(有一个角能看见这张海报也算被看见了)? ...
最新文章
- c++ 继承访问控制初步
- 数学之美——隐含马尔科夫模型
- 通过 .gitlab-ci.yml配置任务-官方配置文件翻译
- 【WEB安全】Xstream最新反序列化poc执行报错问题
- 如果把西游记倒过来看,这才是真正的社会
- 收藏一些自己认为好的网站或博客
- 不可将您的方法命名为“等于”
- 基于MaxCompute搭建社交好友推荐系统
- 策略的静态与动态报表——绝对值得收藏的策略资料(文尾视频)
- Windows 10 如何添加开机启动项
- FFplay硬件加速
- windows10如何截长图
- 2018-PAT春季考试小结
- Windows的计划任务
- TortoiseSVN配置
- 医学人工智能读书会与黄智生教授简历(公号回复“医学AI读书会”下载PDF资料,欢迎转发、赞赏、支持科普)
- python实现GUI设计的方法
- shell foreach
- PGO 是啥,咋就让 Go 更快更猛了?
- opencv在大图片上贴小图
热门文章
- Ajax Upload多文件上传插件翻译及中文演示
- node/js 漏洞_6个可用于检查Node.js中漏洞的工具
- 矩阵奇异值分解特征值分解_推荐系统中的奇异值分解与矩阵分解
- 代码片段管理工具_VS代码片段:提高编码效率的最强大工具
- 利用kickstart自动安装虚拟机
- Oracle数据库的逻辑结构和存储层次
- Python培训教程分享:如何实现pygame的初始化和退出操作?
- 零基础该如何学习Web前端知识?
- Mac下sublime text2 解决中文乱码
- PostgreSQL:Java使用CopyManager实现客户端文件COPY导入