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");
    }
}

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据结构:静态链表[通俗易懂]

    数据结构:静态链表[通俗易懂]首先我们让数组的元素都是由两个数据域组成,data和cur。也就是说,数组的每一个下标都对应一个data和一个cur。数据域data用来存放数据元素,也就是通常我们要处理的数据;而游标cur相当于单链表中的next指针,存放该元素的后继在数组中的下标。我们把这种用数组描述的链表叫做静态链表。数组的第一个元素,即下标为0的元素的cur就存放备用链表的第一个结点的下标;而数组的最后一个元素

    2022年10月29日
  • Pycharm自动导入模块小技巧「建议收藏」

    Pycharm自动导入模块小技巧「建议收藏」周末愉快!不知道大家周末写不写代码,哈哈,反正我已经加完班回来了,今天分享一个能提高编码效率的小技巧,可能你早就在用了,也可能像我一样刚学会,还是趁热跟大家分享一下。如果能把工具熟练运用,往往能达到事半功倍的效果,Pycharm是很多Python开发者的首选IDE,提供各种快捷键、重构功能、调试技巧等,Python是动态语言,对于自动导入模块没有静态语言那么方便,但有了Pycharm,还是…

    2022年8月27日
  • Error:Execution failed for task ‘:app:validateSigningDebug’. > Keystore file D:\Android_keystore\deb

    Error:Execution failed for task ‘:app:validateSigningDebug’. > Keystore file D:\Android_keystore\deb

    2021年3月12日
  • POD POL_胖五详细介绍

    POD POL_胖五详细介绍主要为Pod资源的介绍,Pod的结构,定义,配置和启动的方法

    2022年8月12日
  • [已实现]暴力破解路由器管理密码

    搬新家以后,第一时间连上网络,登录路由器后台。博主租的房子是某平台的,网络是由平台提供的。和上次租房不同的地方在于,这次路由器后台管理密码居然和给的wifi连接密码不一样了,肯定是有人改过密码了!admin等弱口令都试过了,全都不管用!对一个it技术人员来说,被人掌握网络生杀大权肯定是无法容忍的!第一次测试的时候尝试用telnet登录路由器,发现密码已经被更改,无法登录,预料是跟web控制台密码一起改变的。…

    2022年4月9日
  • pycharm输入了激活码提升key is invaild_在线激活

    (pycharm输入了激活码提升key is invaild)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlEC87GSLRKZ-eyJsaWNlbnNlSWQi…

    2022年3月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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