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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ubuntu下安装yum和配置yum源

    Ubuntu下安装yum和配置yum源1、简介Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装2、安装yum2.1检测是否安装build-essential包sudoapt-getinstallbuild-essential或者apt-getinstallbuil.

    2022年6月20日
    30
  • 微信开放平台 获取用户信息(微信公众号获取用户列表时间)

    前言:初次尝试微信公众号的开发,对于学习方法的探索都是来源于网上的博客、问答,对于参差不齐的信息,自己也是有苦说不出,抽出一点时间写点文章,既是对自己的学习总结,也希望给予同是菜鸟的学渣一点帮助背景介绍:我需要用户接收微信分享的链接后,点击进入给参加活动的用户【点赞】,然后需要后台获取该微信用户的openid作为唯一的标记信息,以便保证该用户下次进入后进行数据库的比对,直接提取其对应的操作信息…

    2022年4月12日
    49
  • javaME_javatype

    javaME_javatype一、首先,我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有HTML、有XML、有GIF、还有Flash……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是MIMEType,也就是该资源的媒体类型。媒体类型通常是通过HTTP协议,由Web服务器告知浏览器的,更准确地说,是通过Content-Type来表示的,例如:Content-Type:tex…

    2025年8月1日
    0
  • java创建线程池的几种方式_定时任务 java

    java创建线程池的几种方式_定时任务 java有时候有些需求不需要顺序执行,所以我就使用了多线程并行执行。废话不多说,上代码。1.创建线程池packageorg.java.multithreading;importorg.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;importorg.springframework.context.annotation.Configuration;importorg.springframework.scheduling.

    2022年10月1日
    1
  • c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解[通俗易懂]

    c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解[通俗易懂]用C语言编写的单片机流水灯程序一、硬件电路因为电路用单片机控制,所以电路非常简洁。其电路原理图见下图,印制板图如下图所示。?电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组I/O口,我们这里只用到Pl口,共8个引脚。图中Cl、R9组成典型的上电复位(即在加电时单片机复位)电路,XTAL、C2、C3与AT89C2051片内振荡电路组成时钟振荡器。值得注意的是,C2、C3的容量不能…

    2022年5月1日
    104
  • Mysql数据库备份策略

    Mysql数据库备份策略Mysql数据库备份策略我的petstore所用的数据库是Mysql。Mysql的数据库备份不象那些企业界数据库那样完善,分为完全备份、差分备份以及日记纪录等等。Mysql备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件。mysqldump与MySQL服务器协同操作。直接拷贝方法在服务器外部进行,并且你必须采取措施保证没有客户正在修改你将拷贝的表。如果你想用文件系统备份来备份数

    2022年5月2日
    43

发表回复

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

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