给出一个电话列表,如果列表中存在其中一个号码是另一个号码的前缀这一情况,那么就称这个电话列表是不兼容的。

假设电话列表如下:

·Emergency 911
·Alice 97 625 999
·Bob 91 12 54 26

在此例中,报警电话号码(911)为Bob电话号码(91 12 54 26)的前缀,所以该列表不兼容。

输入格式

第一行输入整数t,表示测试用例数量。

对于每个测试用例,第一行输入整数n,表示电话号码数量。

接下来n行,每行输入一个电话号码,号码内数字之间无空格,电话号码不超过10位。

输出格式

对于每个测试用例,如果电话列表兼容,则输出”YES”。

否则,输出”NO”。

数据范围

1≤t≤401≤t≤40,
1≤n≤100001≤n≤10000

输入样例:

2
3
911
97625999
91125426
5
113
12340
123440
12345
98346

输出样例:

NO
YES
题意:让你判断电话列表有没有矛盾
思路:前缀判断,我们用trie,首先我们存下每个串最后出现的位置+1,然后后面的字符串遍历的时候,如果路径上有过+1,说明有字符串在这里终止成为了这个串的前缀,所以为NO
因为判断时判断前面的能不能成为后面串的前缀,所以我们首先按照长度从小到大排序、
#include<bits/stdc++.h>
#define maxn 100005
#define mod 1000000007
using namespace std;
int ch[maxn][];
int dp[maxn];
string str[maxn];
int tot=;
int insert(string s){
int p=;
for(int i=;i<s.size();i++){
int k=s[i]-'';
if(ch[p][k]==) ch[p][k]=++tot;
p=ch[p][k];
//dp[p]++;
if(dp[p]) return ;
}
dp[p]++;
return ;
}
int cmp(string x,string y){
return x.size()<y.size();
}
int main(){
int t,n;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
tot=;
memset(ch,,sizeof(ch));
memset(dp,,sizeof(dp));
int flag=;
for(int i=;i<n;i++){
cin>>str[i];
}
sort(str,str+n,cmp);
for(int i=;i<n;i++){
int k=insert(str[i]);
if(k==){
flag=;
}
}
if(flag) printf("YES\n");
else printf("NO\n");
}
}
 

AcWing 161. 电话列表 (trie)打卡的更多相关文章

  1. vue,element列表大数据卡顿问题,vue列表渲染慢,element表格渲染慢,表格渲染慢(卡),表格全选卡

    https://github.com/livelyPeng/pl-table 一个表格组件(完美解决万级数据渲染卡顿问题),流畅渲染万级数据并不会影响到el-table的原有功能 分析: 前端UI框架 ...

  2. vue,element列表大数据卡顿问题,vue列表渲染慢

    https://github.com/livelyPeng... 一个表格组件(完美解决万级数据渲染卡顿问题),流畅渲染万级数据并不会影响到el-table的原有功能 分析: 前端UI框架使用的是El ...

  3. 想让安卓app不再卡顿?看这篇文章就够了

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由likunhuang发表于云+社区专栏 实现背景 应用的使用流畅度,是衡量用户体验的重要标准之一.Android 由于机型配置和系统的 ...

  4. android 数据存储&lt;一&gt;----android短信发送器之文件的读写(手机+SD卡)

    本文实践知识点有有三: 1.布局文件,android布局有相对布局.线性布局,绝对布局.表格布局.标签布局等,各个布局能够嵌套的. 本文的布局文件就是线性布局的嵌套 <LinearLayout ...

  5. 赵雅智_service电话监听2加接通电话录音

    步骤: 创建CallStateService继承Service 取得电话服务 监听电话动作 电话监听的对象 没有电话时 停止刻录 重设 刻录完毕一定要释放资源 电话响铃时 从麦克风採集声音 内容输出格 ...

  6. android 数据存储----android短信发送器之文件的读写(手机+SD卡)

    本文实践知识点有有三: 1.布局文件,android布局有相对布局,线性布局,绝对布局,表格布局,标签布局等.各个布局能够嵌套的.本文的布局文件就是线性布局的嵌套 <LinearLayout x ...

  7. Android Framework 其中A记录

    一个简短的引论 以往的研究太偏应用层的功能,实现了,原则上不进入非常理解,现在,研究人员framework该框架层. 创纪录的 1.下载源代码,文件夹例如以下: 2.Android系统的层次例如以下: ...

  8. Android Framework 学习和需要学习的内容

    1. 之前的研究太偏向应用层功能实现了,很多原理不了解没有深究,现在研究framework面存一些资料待有空查看. 2.Android系统的层次如下: 3.项目目录简单分析如下: 4.telphony ...

  9. 2019寒假训练营寒假作业(三) MOOC的网络空间安全概论笔记部分

    目录 第五章 网络攻防技术 5.1:网络信息收集技术--网络踩点 信息收集的必要性及内容 网络信息收集技术 网络踩点(Footprinting) 网络踩点常用手段 5.2:网络信息收集技术 --网络扫 ...

随机推荐

  1. oracle 查看所有表的数据量并排序

    select t.table_name,t.num_rows from user_tables t ORDER BY NUM_ROWS DESC; 还可以直接查看dblink的:select t.ta ...

  2. Python基础教程(011)--程序开发中的错误及原因

    前言 排查代码开发中的错误 内容 1,编写的程序不能正常执行,或者执行的结果不是我们期望的 2,俗称bug,是程序开发常见的,初学常见的原因有 手误 对已经学习的知识点理解不足 对语音还有需要学习和提 ...

  3. The Second Scrum Meeting!

    第七周会议 情况简述 会议概要:汇报已完成的任务,讨论并解决遇到的问题 参与人员:詹晓宇  谢赛金  熊紫仁  徐翠萍  周娟  孙尚煜 会议地点:六区研讨性教室 具体内容 小组成员 已完成任务 计划 ...

  4. cms网站模板收集

    Dedecms模板 1.魔客吧  -----  dedecms .wordpress .discuz.shopnc.ecshop等模板都有 eg: html5绿色响应式企业网页模板 2.绘艺素材 -- ...

  5. stm32 单片机

    STM32系列基于专为要求高性能.低成本.低功耗的嵌入式应用专门设计的ARM Cortex-M3内核(ST's product portfolio contains a comprehensive r ...

  6. (10)C++ 使用类

    一.运算符重载 1. #include<iostream> using namespace std; class Sum { int add; public: Sum(int add) { ...

  7. Nginx网络架构实战学习笔记(五):大访问量优化整体思路、ab压力测试及nginx性能统计模块、nginx单机1w并发优化

    文章目录 大访问量优化整体思路 ab压力测试及nginx性能统计模块 ab压力测试及nginx性能统计模块 ab压力测试 nginx性能统计模块 nginx单机1w并发优化 整装待发: socket ...

  8. Newline required at end of file but not found

    在启动vue项目中遇到 解决方法 在main.js文件的最后一行加一个空行就可以了

  9. Struts1.3——使用MyEclipse集成工具开发Struts

    前面两篇通过手工写代码,手工配置struts-config.xml文件的方法来开发了一个最简单的struts项目,通过手工的方式旨在学习底层原理细节.当熟悉了以后,我们就不需要再通过纯手工的方式来开发 ...

  10. how to convert from hex to disasm

    cat ascii.hex | ascii2binary -b h -t us > ascii.bin x86dis -e 0 -s att -f ascii.bin echo "d8 ...