首页 > 其他分享 >Phone List

Phone List

时间:2024-05-05 15:12:07浏览次数:21  
标签:insert 12 前缀 int 样例 List Phone maxn

题目描述

输入格式

输出格式

样例

样例输入

2
3
911
97625999
91125426
5
113
12340
123440
12345
98346

样例输出

NO
YES

数据范围与提示

这道题的三条判断是否存在前缀的标准:

  1. 当在建树字符串已经到结尾时,如果该点有结束标记,那肯定是前缀(不是真前缀

  2. 当在建树字符串已经到结尾时,如果该点还有子节点,那也是前缀

  3. 当在建树过程中经过了某个结束标记,表明存在前缀(此时之前的某个字符串是当前插入的字符串的前缀)

  • 我觉得这道题最巧妙的地方就是不是在search里面判断而是变插变在insert里面判断

  • 在插入时一定要从0开始遍历,不然就会像我一样一直WA

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e4+10;
int t,n,trie[maxn*12][12],tot;
bool ed[maxn*12];
string a;
bool insert(const string &b)
{
	int len=b.length(),p=1;bool flag=0;
	for (int i=0;i<len;i++)
	  {
	  	int ch=b[i]-'0';
	  	if (!trie[p][ch]) trie[p][ch]=++tot;
		else if (i==len-1) //结尾已经有点 
		  flag=1;
		p=trie[p][ch];
		if (ed[p])//经过了结束标记 
	  	  flag=1;
	  }
	ed[p]=1;
	return flag;
}
int main()
{
	scanf("%d",&t);
	while (t--)
	  {
	  	tot=1;bool x=0;
	  	scanf("%d",&n);
	  	memset(trie,0,sizeof(trie));
	  	memset(ed,0,sizeof(ed));
	  	for (int i=1;i<=n;i++) 
		  {
		  	cin>>a;
		  	if (insert(a)) x=1;
		  }
		if (x) printf("NO\n");
		else printf("YES\n");
	  }
	return 0;
}

完结撒花!o( ̄▽ ̄)ブ

标签:insert,12,前缀,int,样例,List,Phone,maxn
From: https://www.cnblogs.com/zhagnxinyue/p/18173508

相关文章

  • grid 与 treelist 的区别
    TreeList与Grid的主要区别体现在数据结构、展示方式和应用场景上。以下是具体的分析:数据结构:TreeList:TreeList是一种树状的数据结构,它可以理解为是一个有序、可重复的树状列表。这种数据结构不仅实现了List接口,还融入了树的特性,如父子节点的关系,这使得它在处理具有层级关系的......
  • devexpress中 cxTreeList 与 cxVirtualTreeList 区别
    在DevExpress控件库中,cxTreeList和cxVirtualTreeList都是用于展示层级数据的控件,但它们在使用场景、性能优化和数据加载方式等方面有所不同。以下是两者之间的主要区别:数据展示与交互:cxTreeList:提供了一个传统的树形列表视图,用户可以直观地看到数据的层级结构,并通过展开和折......
  • List的remove()方法详解
    https://blog.csdn.net/anxin_hw/article/details/128312846一、错误使用场景1、普通for循环遍历List删除指定元素,list.remove(index)示例:将姓张的名字移除掉List<String>nameList=newArrayList<>(Arrays.asList("张三","李四","王五","赵六"));na......
  • CMakeLists.txt --- install使用
    例:cmake_minimum_required(VERSION3.9)project(test)set(CMAKE_BUILD_TYPEDebug)add_library(hahatest.cpp)install(TARGEThahaDESTINATION/home/linxisuo/project/test)install(DIRECTORY${CMAKE_SOURCE_DIR}/testDESTINATION/home/linxisuo)说明:1.安装......
  • CMakeListx.txt --- include_directories和target_include_directories命令
    1. include_directories语法include_directories([AFTER|BEFORE][SYSTEM]dir1[dir2...])作用将指定目录添加到编译器的头文件搜索路径之下,指定的目录被解释成当前源码路径的相对路径。参数默认情况下,include_directories命令会将目录添加到列表最后,可以通过命令设置......
  • CMakeLists.txt --- 导入接口库(预编译库)
    以接口库的方式导入预编译库cmake_minimum_required(VERSION3.9)project(test)set(CMAKE_BUILD_TYPEDebug)set(CMAKE_C_FLAGS"$ENV{CFLAGS}-O2-Wall-pthread")set(CMAKE_CXX_FLAGS"$ENV{CFLAGS}-O2-Wall-pthread-std=c++11-std=gnu++11")#设置mo......
  • python教程3.1:数据类型:字符串+列表list
    一、字符串字符串是⼀个有序的字符的集合,⽤于在计算机⾥存储和表示⽂本信息 常用操作二、列表list[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表⼀个元素特征 1、增加操作   追加,数据会追加到尾部 2、删除操作3、修改操作 4、查找操作 如果......
  • Vue .browserslistrc
    Vue .browserslistrc 在使用脚手架搭建项目时,会自动生成.browserslistrc文件,该文件只要是配置兼容浏览器对于部分配置参数做一些解释:">1%":代表着全球超过1%人使用的浏览器“last2versions”:表示所有浏览器兼容到最后两个版本“notie<=8”:表示IE浏览器版本大于8......
  • Qt - QListWidget+QListWidgetItem
    效果:文件结构:qcustomwidget.uiqcustomwidget.h(自定义条目类)#ifndefQCUSTOMWIDGET_H#defineQCUSTOMWIDGET_H#include<QWidget>namespaceUi{classQCustomWidget;}classQCustomWidget:publicQWidget//联系人类{Q_OBJECTpublic:QCustomWidget......
  • 问题解决:Failed to download metadata for repo ‘appstream‘: Cannot prepare inter
    大家都知道Centos8于2021年年底停止了服务,大家再在使用yum源安装时候,出现下面错误“错误:Failedtodownloadmetadataforrepo‘AppStream’:Cannotprepareinternalmirrorlist:NoURLsinmirrorlist”1、进入yum的repos目录代码语言:javascript复制cd/etc/yum......