• hdu2222Keywords Search字典树入门……


    #include<iostream>
    #include<cstring>
    using namespace std;
    struct node
    {
    	int num;
    	node *next[26];
    }*root;
    void join(const char *s)
    {
    	node *p=root,*t;
    	int i,len=strlen(s);
    	for(i=0;i<len;i++)
    		if(p->next[s[i]-'a'])
    			p=p->next[s[i]-'a'];
    		else
    		{
    			t=new node;
    			memset(t,0,sizeof(node));
    			p->next[s[i]-'a']=t;
    			p=t;
    		}
    	p->num++;
    }
    void work(const char *s)
    {
    	node *p;
    	int i,j,len=strlen(s),sum=0;
    	for(i=0;i<len;i++)
    	{
    		p=root;
    		for(j=i;j<len;j++)
    		{
    			if(p->next[s[j]-'a'])
    			{
    				p=p->next[s[j]-'a'];
    				sum+=p->num;
    				p->num=0;
    			}
    			else
    				break;
    		}
    	}
    	printf("%d
    ",sum);
    }
    void init()
    {
    	int num;
    	char t[60];
    	root=new node;
    	memset(root,0,sizeof(node));
    	scanf("%d",&num);
    	while(num--)
    	{
    		scanf("%s",t);
    		join(t);
    	}
    }
    int main()
    {
    	int exp;
    	char t[1000010];
    	scanf("%d",&exp);
    	while(exp--)
    	{
    		init();
    		scanf("%s",t);
    		work(t);
    	}
    }

  • 相关阅读:
    Loadrunner日志设置与查看
    Mysqlfunc.c
    loadrunner生成随机uuid的方法
    数据库连接
    FAQ_2
    JAVA VUser
    FAQ_1
    LoadRunner中的Web 函数列表
    MySQL性能诊断与调优
    LoadRunner书籍推荐
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7242121.html
Copyright © 2020-2023  润新知