`

HDU-1671-Phone List

阅读更多

HDU-1671-Phone List

http://acm.hdu.edu.cn/showproblem.php?pid=1671

字典树,判断是否有某个数字是另一个数字的前缀,注意123不是123的前缀,建树之后要删除节点,否则会Memory LimitExceeded

写的比较麻烦,分两种情况,一是先出现123,再出现1234,;二是先出现1234,再出现123

#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;#define N 10005char str[N];struct node{	int count;	node *childs[10];	node()	{		count=0;		int i;		for(i=0;i<=9;i++)		childs[i]=NULL;	}};node *root,*current,*newnode;int flag;void del(node *head)  {	int i;	for(i=0;i<=9;i++)	if(head->childs[i]!=NULL)	del(head->childs[i]);	delete(head);}int judge(node *head){	int i;	for(i=0;i<=9;i++)	if(head->childs[i]!=NULL)	return 1;	return 0;}void insert(char *str){	int i,m;	current=root;	for(i=0;i<strlen(str);i++)	{		m=str[i]-'0';		if(current->childs[m]!=NULL)		{			current=current->childs[m];			if((i<strlen(str)-1&¤t->count==1)||(i==strlen(str)-1&&judge(current)))  			{				flag=1;				break;			}		}		else		{			newnode=new node;			current->childs[m]=newnode;			current=newnode;		}	}	current->count=1;}int main(){	int t,i,n;	scanf("%d",&t);	while(t--)	{		scanf("%d",&n);		flag=0;		root=new node;		while(n--)		{			scanf("%s",str);			if(flag==1)			continue;			insert(str);		}		if(flag)		printf("NO\n");		else		printf("YES\n");		del(root);	}	return 0;}


分享到:
评论

相关推荐

    hdu-acm源代码(上百道源代码)

    HDU-ACM源代码是针对国际大学生程序设计竞赛(ICPC,International Collegiate Programming Contest)中的题目,由参赛者或爱好者编写的解决方案集合。这个压缩包包含上百个源代码,涉及了各种算法和编程技巧,是...

    HDU-EID-V2-核心板1

    在本话题中,我们关注的是一个名为"HDU-EID-V2-核心板1"的特定设计,它涉及到STM32的核心组件、接口、电源管理和调试配置。 首先,核心板设计中提到了F103和F207两个型号的STM32芯片。F103和F207属于STM32的不同...

    hdu-OS-simple-shell,Linux_的_Shell_命令窗口_demo_版实现_shell-demo.zip

    hdu-OS-simple-shell,Linux_的_Shell_命令窗口_demo_版实现_shell-demo

    期末复习自行整理资料分享_HDU-fuxiziyong.zip

    期末复习自行整理资料分享_HDU-fuxiziyong

    算法-数塔(HDU-2084).rar

    标题中的“算法-数塔(HDU-2084)”是指一个编程竞赛题目,源自杭州电子科技大学(HDU)的在线编程平台。在这个问题中,参赛者被要求解决一个名为“数塔”的算法挑战。数塔问题通常涉及到递归、深度优先搜索(DFS)...

    2019-hdu-multi-(2019杭电多校第二场数据与标程).zip

    《2019-hdu-multi-(2019杭电多校第二场数据与标程).zip》是一个专门针对编程竞赛爱好者和ACM(国际大学生程序设计竞赛)参赛者的资源包。这个压缩文件的核心内容是2019年杭州电子科技大学(HDU)主办的多校联合...

    HDU-2000-2099.rar_hdu

    这个名为"HDU-2000-2099.rar_hdu"的压缩包包含了该平台从2000到2099共100道题目的源代码。这些题目涵盖了初级到高级的各种算法,对于学习和提升编程技能非常有帮助。 首先,我们来看看这些题目可能涉及到的基础知识...

    HDU-2000-2099.zip_hdu2000

    【标题】"HDU-2000-2099.zip_hdu2000" 是一个包含杭电(Hangzhou Dianzi University)ACM竞赛题目解题报告的压缩包,覆盖了编号从2000到2099的题目。这个资源对于学习算法、提高编程技巧以及准备ACM/ICPC(国际大学...

    算法-免费馅饼(HDU-1176)(包含源程序).rar

    算法-免费馅饼(HDU-1176)(包含源程序).rar

    算法-排列组合(HDU-1521)(包含源程序).rar

    标题中的“算法-排列组合(HDU-1521)”显然指的是一道编程竞赛题目,源自HDU(杭州电子科技大学)的在线编程平台。这类问题通常要求参赛者编写程序来解决数学或计算机科学中的排列组合问题。排列组合是离散数学中的...

    zyq2652192993zyq#Advance-Algorithm#HDU-1711 Number Sequence(KMP算

    HDU-1711 Number Sequence(KMP算法)For each test case, you should output one line wh

Global site tag (gtag.js) - Google Analytics