POJ 3630 Phone List

POJ 3630 Phone List

大家好,又见面了,我是全栈君。

Trie树。

题意是问某个数字可不可能是其它数字的前缀。

就是裸的字典树。排序然后插进去就好了。

#include<cstdio>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<map>
#include<stack>
#include<iostream>
#include<list>
#include<set>
#include<cmath>
#define INF 0x7fffffff
#define eps 1e-6
#define LL long long
using namespace std;
struct Trie
{
    int word[100001][10];
    int sz,cot;
    int ex[1000010];
    void intTrie()
    {
        sz=1;
        cot=1;
        memset(word[0],0,sizeof(word[0]));
        ex[0]=0;
    }
    int insert(char *s)
    {
        int u=0,c,len=strlen(s);
        int ans=0;
        for(int i=0; i<len; i++)
        {
            c=s[i]-'0';
            if(!word[u][c])
            {
                memset(word[sz],0,sizeof(word[sz]));
                ex[sz]=0;
                word[u][c]=sz++;
            }
            u=word[u][c];
            ans+=ex[u];
        }
        if(ex[u]==0)ex[u]=1;
        return ans;
    }
}wo;
struct lx
{
    char str[11];
}l[10001];
bool cmp(lx a,lx b)
{
    return strcmp(a.str,b.str)<0;
}
int main()
{
    int t,n;
    scanf("%d",&t);
    while(t--)
    {
        wo.intTrie();
        scanf("%d",&n);
        bool flag=0;
        for(int i=0;i<n;i++)
            scanf("%s",l[i].str);
        sort(l,l+n,cmp);
        for(int i=0;i<n;i++)
        {
            int ans=wo.insert(l[i].str);
            if(ans>0)
            {
                flag=1;break;
            }
        }
        if(flag)puts("NO");
        else puts("YES");
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116617.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 时序数据 mysql存储_【时序数据库】时序数据库介绍

    时序数据 mysql存储_【时序数据库】时序数据库介绍1.基本概念时序数据库(TimeSeriesDatabase)是用于存储和管理时间序列数据的专业化数据库。时序数据库特别适用于物联网设备监控和互联网业务监控场景。下面介绍下时序数据库的一些基本概念(不同的时序数据库称呼略有不同)。1.1度量(metric)监测数据的指标,例如风力和温度。相当于关系型数据库中的table。1.2标签(tag)指标项监测针对的具体对象,属于指定度量下的数据子类…

  • ORA-12560: TNS: 协议适配器错误 解决方法[通俗易懂]

    ORA-12560: TNS: 协议适配器错误 解决方法[通俗易懂]前言&nbsp;&nbsp;&nbsp;&nbsp;我在控制台重启oracle服务端监听lsnrctlstart的时候&nbsp;&nbsp;&nbsp;&nbsp;报错:ORA-12560:TNS:协议适配器错误解决方法&nbsp;&nbsp;&nbsp;&nbsp;一:检查监听口是否开启。在开始-运行,输入services.msc或者在控制面板-管理工具,进入服务。找…

  • 导航上显示某个地点已关闭什么意思_大众MIB(275)教程之导航使用「建议收藏」

    导航上显示某个地点已关闭什么意思_大众MIB(275)教程之导航使用「建议收藏」大众可以说近几年的发展非常快,仅车载收音机都更换了好几代了。从最初的单纯收音机到后来的6碟CD机RCD510,最初国内上市的导航RNS510,还有后来自带蓝牙的RNS315,再到PQ平台187A,当初抄的也是火的很几乎每天都能看到187A的帖子,直到出现了升级版的187B,这个自带carplay和百度canlife的PQ平台的机器一下将老款车型导航的改装推上了最巅峰,也把一款拆车机…

  • CloseableHttpClient发送http请求

    Stringresponse=null;//客户端接口请求路径Stringurl=EspConfig.getClientBaseUrl()+ClientUtil.CLIENT_METHODNAME;//创建请求CloseableHttpClienthttpclient=HttpClientBuilder.create().build();HttpPostpos…

  • 批处理 for命令_文件批处理命令

    批处理 for命令_文件批处理命令对所有的批处理初学者来说,for的应用是最难理解以及掌握的。本文由浅入深,为大家专门讲解for的用法,希望大家喜欢。首先应该明确的是,for不是一个简单的命令,它的用法比较复杂,它还可以带四个参数(/L/D/R/F),其中:/L和/F参数是最经常用到的。当然,它本身也可以不带参数,下面我们通过具体的例子来讲解for的运用。一、不带参数的for:@echo

    2022年10月12日
  • android变化HOLO对话风格

    android变化HOLO对话风格

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号