POJ - 3630 Phone List(字典树)
题目链接:点击查看
题目大意:给出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(字典树)相关推荐
- POJ - 2513 Colored Sticks(字典树+并查集+欧拉回路)
题目链接:点击查看 题目大意:给出n个木棍,问若两两相连,最终能否构成一根长直木棍,相连的规则是两个木棍的相接端点的颜色需要保持相同 题目分析:关于这个题目,我们可以将每个木棍视为一条边,每个木棍的两 ...
- [poj 2001] Shortest Prefixes (字典树)
Language: Shortest Prefixes Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 20503 Accepte ...
- POJ 1451 T9 (字典树好题)
背景:为了方便九宫格手机用户发短信,希望在用户按键时,根据提供的字典(给出字符串和频数),给出各个阶段最有可能要打的单词. 题意: 首先给出的是字典,每个单词有一个出现频率.然后给出的是询问,每个询问 ...
- poj 2513 Colored Sticks( 字典树哈希+ 欧拉回路 + 并查集)
题目:http://poj.org/problem?id=2513 参考博客:http://blog.csdn.net/lyy289065406/article/details/6647445 htt ...
- Phone List POJ - 3630(字典树模板题)
题意 给定 n个长度不超过 10的数字串,问其中是否存在两个数字串S,T ,使得 S是 T的前缀,多组数据. 题目 Given a list of phone numbers, determine i ...
- [PKU 3630] 字符串(二) {Trie 字典树}
{ 开始讨论字符串的问题 上一篇是转载Matrix67的KMP算法讲解 这一篇主要讨论Trie } Trie (发音Try) 是一棵用于存储多个字符串的多叉树 由于插入和查询都极为高效 又称字典树 树 ...
- poj 2513(欧拉路径+字典树映射)
题目链接:http://poj.org/problem?id=2513 思路:题目还是很简单的,就是判断是否存在欧拉路径,我们给每个单词的头和尾映射序号,统计度数.对于给定的无向图,当且仅当图连通并且 ...
- 一个字典树问题--电话号码转化问题(POJ 1002 487-3279)
字典树,又称为单词查找树,Trie树.是一种用于快速检索多叉树的结构.典型应用于统计,排序和保存大量字符串.利用字符串的前缀来减少存储空间,减少无谓的比较,提高查询效率. 字典树根节点不包含任何数据, ...
- POJ 3764 Language: The xor-longest Path (01字典树+DFS)
传送门:POJ 3764 题目大意: 在树上找一段路径(连续)使得边权相异或的结果最大. 前置技能: 1.用链式前向星建图. 2. 01字典树的应用. 思路: 本题用 vector数组建图是会超时的, ...
最新文章
- golangsha1解码_golang中几种加密方式的处理
- 推荐一个生成后端模拟数据的懒人工具:lazy-mock
- STM32 USART串口DMA 接收和发送的源码详解!
- ISAPI_Rewrite规则
- Linux内核 TCP/IP、Socket参数调优
- 向园子里的朋友探讨一个问题:如果判定一个对象已被处置
- C++控制CPU核的使用
- Windows核心编程_Miniblin(5) 前后端交互数据
- 第十二章 演员评论家(Actor-Critic)-强化学习理论学习与代码实现(强化学习导论第二版)
- 传智播客 C/C++学习笔记 数组和指针的关系, 字符串学习
- Spring Cloud学习笔记---一分钟知晓Zuul
- Hbase之表的设计
- 使用octotree 出现Error: Connection error octotree解决办法
- 流传千古的爱情传说原来竟是一个先劫色后劫财的骗局
- Raspberry 静态IP配置
- AspNetCore.Mvc写Get方法运行显示该网页无法正常运作 http err 500问题
- 搜索关键字高亮_SpringBoot+Mybatis-Plus+Elasticsearch 实现关键字搜索高亮展示
- unity3d学习笔记(一)方向键移动物体
- java 音频 傅立叶_关于FFT分析音频的小归纳
- windows上安装linux_Linux系统安装Windows软件? 通过这个工具可以做到