problem

  • 给定n个长度不超过10的数字串(n<10^4)
  • 问其中是否存在两个数组串a,b,满足a是b的前缀。存在输出NO,不存在输出YES

solution

  • 将所有数字串构建成字典树
  • 在插入过程中,如果没有新建任何节点(当前串是之前串的前缀))或者插入过程中经过某个带结尾标记的串(之前串是当前串的前缀),则存在前缀情况。

codes

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 1e5+10;int tire[maxn][26], val[maxn], tot;
void build(){tot = 1;memset(tire,0,sizeof(tire));memset(val,0,sizeof(val));
}
bool insert(char *s){bool jingguo = false, xinjian = false;int len = strlen(s), u = 1;for(int i = 0; i < len; i++){int c = s[i]-'0';if(tire[u][c]==0){tire[u][c] = ++tot;xinjian = true;}u = tire[u][c];if(val[u])jingguo = true;}val[u] = 1;if(!xinjian || jingguo)return true;return false;
}char s[20];
int main(){int T;scanf("%d",&T);while(T--){int n;scanf("%d",&n);build();bool ans = false;for(int i = 1; i <= n; i++){scanf("%s",s);if(insert(s))ans = true;//存在前缀}if(ans)cout<<"NO\n";else cout<<"YES\n";}return 0;
}

【POJ3630】Phone List(字典树)相关推荐

  1. 提高篇 第二部分 字符串算法 第3章 Trie字典树

    Trie(字典树)解析及其在编程竞赛中的典型应用举例 - Reqaw - 博客园 『一本通』Trie字典树 - YeLingqi - 博客园 字典树(Trie Tree) - 仰望高端玩家的小清新 - ...

  2. hdu5296 01字典树

    根据二进制建一棵01字典树,每个节点的答案等于左节点0的个数 * 右节点1的个数 * 2,遍历整棵树就能得到答案. AC代码: #include<cstdio> using namespa ...

  3. BZOJ 3483 SGU505 Prefixes and suffixes(字典树+可持久化线段树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3483 [题目大意] 给出一些串,同时给出m对前缀后缀,询问有多少串满足给出的前缀后缀模 ...

  4. 2014百度之星 Xor Sum(字典树+贪心)

    题目在HDU_OJ Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometh ...

  5. HDU6964 I love counting (字典树+莫队)

    题意: 给定一个长度为 nnn 的序列c,qc,qc,q 次询问,每次给出l,r,a,bl,r,a,bl,r,a,b求在[l,r][l,r][l,r]中有多少种不同的值 kkk 满足 k⊕a≤b​.k ...

  6. Beautiful Subarrays (01字典树 瞎搞)

    题意: 题解: 一看问的是子序列,并且还是异或. 首先想到01字典树,再一看让你求子序列的个数,大致是想让你把这个序列进行前缀异或处理后然后再01字典树上进行操作吧. 假设01字典树往左边是0右边是1 ...

  7. CF888G Xor-MST (01字典树+MST)

    题意: 给你n个数,每个数有一个值. 问你这n个数的最小生成树为多少,两点之间的边权为异或值. 题解: 参考了洛谷上的一个题解,总觉得这样的时间复杂度会爆炸,但是确确实实没爆炸. 我们每次去合并两个点 ...

  8. Perfect Security (01字典树删除点)

    题意: 第一行给你一个n 第二行给你n个数字 分别是a[1],a[2]-a[n]. 第三行给你n个数字 分别是b[1],b[2]-b[n]. 问:第三行的序列可自由排列,要求排列之后的顺序 a[1] ...

  9. Vitya and Strange Lesson (01字典树)

    题意:给定一组数,然后对所有的数进行异或操作m次异或操作,问你每次操作后,没有出现过的最小的非负整数 题解: 首先需要一个性质(ab)c=a(bc); 所以我们没有必要对于所有的数进行异或操作. 我们 ...

最新文章

  1. ecs安装tomcat和mysql_centos(Linux)系统阿里云ECS搭建 jdk,tomcat和MySQL环境,并部署web程序...
  2. 英特尔反驳质疑:芯片供应充足、10nm量产没问题
  3. OpenVAS漏洞扫描基础教程之创建用户
  4. ubuntu怎么清空回收站?(权限不够)
  5. Day 1 二分搜索训练总结
  6. installEventFilter、eventFilter函数理解
  7. 2. with check option能起什么作用?_面部毛孔粗大,有什么拯救的方法吗?
  8. 【Java】OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes…… 的解决方法
  9. 设计模式之蝉——代理模式上中
  10. 小米6显示服务器出错,小米6解锁BL显示未连接手机解决办法以及各种小技巧汇总......
  11. 4g网络标准 计算机网络,4G网络是什么 4G LET是什么?
  12. speex回声消除源码解读
  13. 软件测试适不适合女生来做?女生做软件测试有哪些好处?
  14. 微信小程序获取微信卡包发票原件及格式化发票信息
  15. 微信小程序中wx.canIUse的坑
  16. 计算机起源于发展论文,关于计算机起源及发展的论文
  17. Python -- 找出100以内的所有质数
  18. 《如何阅读一本书》做一名“棒球赛中的捕手”
  19. web gallary
  20. 几组数据的相关性python_python数据相关性分析 (计算相关系数)

热门文章

  1. #ifdef 的使用
  2. 【剑指 offer】(十八)—— 树的子结构
  3. Python 基础—— collections 模块
  4. 布尔操作的“骤死式”(short-circuiting behavior)
  5. python自学网-python自学网
  6. 用python画漂亮图-用Python画一些漂亮图形--Quora代码赏析
  7. 普通人学python有意义吗-普通人为什么要学习Python?
  8. python与java前景-java和Python的前景谁更好
  9. 监测wifi连接_超声波传感器在物联网河流水位监测过程中扮演重要角色
  10. mysql 主从复制 gtid_Mysql-GTID主从复制