题目链接:点击查看

题目大意:给出n个电话号码,问是否都能拨通,拨通的定义是不会存在一个电话号码是另一个电话号码的前缀

题目分析:因为涉及到了前缀,所以我们可以直接套字典树的板子上去,按照题意插入一遍然后再判断一遍前缀就好了,模板题,直接上代码了:

对了,多组输入,记得每次都初始化

#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<cmath>
#include<cctype>
#include<stack>
#include<queue>
#include<list>
#include<vector>
#include<set>
#include<map>
#include<sstream>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e5+100;char s[10100][15];int k=1;int trie[N][10];bool color[N];void insert(char s[])
{int len=strlen(s);int pos=0;for(int i=0;i<len;i++){int to=s[i]-'0';if(!trie[pos][to])trie[pos][to]=k++;pos=trie[pos][to];}color[pos]=true;
}int search(char s[])
{int len=strlen(s);int pos=0;for(int i=0;i<len-1;i++){int to=s[i]-'0';pos=trie[pos][to];if(color[pos])return false;}return true;
}void init()
{memset(color,false,sizeof(color));memset(trie,0,sizeof(trie));k=1;
}bool check(int n)
{for(int i=1;i<=n;i++)if(!search(s[i]))return false;return true;
}int main()
{
//  freopen("input.txt","r",stdin);int w;cin>>w;while(w--){init();int n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%s",s[i]);insert(s[i]);}if(check(n))printf("YES\n");elseprintf("NO\n");}return 0;
}

POJ - 3630 Phone List(字典树)相关推荐

  1. POJ - 2513 Colored Sticks(字典树+并查集+欧拉回路)

    题目链接:点击查看 题目大意:给出n个木棍,问若两两相连,最终能否构成一根长直木棍,相连的规则是两个木棍的相接端点的颜色需要保持相同 题目分析:关于这个题目,我们可以将每个木棍视为一条边,每个木棍的两 ...

  2. [poj 2001] Shortest Prefixes (字典树)

    Language: Shortest Prefixes Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 20503 Accepte ...

  3. POJ 1451 T9 (字典树好题)

    背景:为了方便九宫格手机用户发短信,希望在用户按键时,根据提供的字典(给出字符串和频数),给出各个阶段最有可能要打的单词. 题意: 首先给出的是字典,每个单词有一个出现频率.然后给出的是询问,每个询问 ...

  4. poj 2513 Colored Sticks( 字典树哈希+ 欧拉回路 + 并查集)

    题目:http://poj.org/problem?id=2513 参考博客:http://blog.csdn.net/lyy289065406/article/details/6647445 htt ...

  5. Phone List POJ - 3630(字典树模板题)

    题意 给定 n个长度不超过 10的数字串,问其中是否存在两个数字串S,T ,使得 S是 T的前缀,多组数据. 题目 Given a list of phone numbers, determine i ...

  6. [PKU 3630] 字符串(二) {Trie 字典树}

    { 开始讨论字符串的问题 上一篇是转载Matrix67的KMP算法讲解 这一篇主要讨论Trie } Trie (发音Try) 是一棵用于存储多个字符串的多叉树 由于插入和查询都极为高效 又称字典树 树 ...

  7. poj 2513(欧拉路径+字典树映射)

    题目链接:http://poj.org/problem?id=2513 思路:题目还是很简单的,就是判断是否存在欧拉路径,我们给每个单词的头和尾映射序号,统计度数.对于给定的无向图,当且仅当图连通并且 ...

  8. 一个字典树问题--电话号码转化问题(POJ 1002 487-3279)

    字典树,又称为单词查找树,Trie树.是一种用于快速检索多叉树的结构.典型应用于统计,排序和保存大量字符串.利用字符串的前缀来减少存储空间,减少无谓的比较,提高查询效率. 字典树根节点不包含任何数据, ...

  9. POJ 3764 Language: The xor-longest Path (01字典树+DFS)

    传送门:POJ 3764 题目大意: 在树上找一段路径(连续)使得边权相异或的结果最大. 前置技能: 1.用链式前向星建图. 2. 01字典树的应用. 思路: 本题用 vector数组建图是会超时的, ...

最新文章

  1. golangsha1解码_golang中几种加密方式的处理
  2. 推荐一个生成后端模拟数据的懒人工具:lazy-mock
  3. STM32 USART串口DMA 接收和发送的源码详解!
  4. ISAPI_Rewrite规则
  5. Linux内核 TCP/IP、Socket参数调优
  6. 向园子里的朋友探讨一个问题:如果判定一个对象已被处置
  7. C++控制CPU核的使用
  8. Windows核心编程_Miniblin(5) 前后端交互数据
  9. 第十二章 演员评论家(Actor-Critic)-强化学习理论学习与代码实现(强化学习导论第二版)
  10. 传智播客 C/C++学习笔记 数组和指针的关系, 字符串学习
  11. Spring Cloud学习笔记---一分钟知晓Zuul
  12. Hbase之表的设计
  13. 使用octotree 出现Error: Connection error octotree解决办法
  14. 流传千古的爱情传说原来竟是一个先劫色后劫财的骗局
  15. Raspberry 静态IP配置
  16. AspNetCore.Mvc写Get方法运行显示该网页无法正常运作 http err 500问题
  17. 搜索关键字高亮_SpringBoot+Mybatis-Plus+Elasticsearch 实现关键字搜索高亮展示
  18. unity3d学习笔记(一)方向键移动物体
  19. java 音频 傅立叶_关于FFT分析音频的小归纳
  20. windows上安装linux_Linux系统安装Windows软件? 通过这个工具可以做到

热门文章

  1. Zookeeper数据的同步流程
  2. 分布式架构的session问题
  3. SasSHRM中基于shiro的认证授权:环境搭建
  4. Arrays练习:字符串倒序排列
  5. Tomcat集群快速入门:Nginx负载均衡配置,常用策略,场景及特点
  6. 顺序表查找+折半查找(二级)
  7. SpringBoot profile配置
  8. 设置某个元素的标签内容、设置元素的样式、层次选择器、总结选择器
  9. php制作随机地图,随机生成Roguelike游戏地图算法
  10. 201117阶段二SQLite数据库