hdu2222Keywords Search字典树入门……
2024-09-08 07:55:43
#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\n",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);
}
}
最新文章
- SharePoint 向多行文本类型字段插入特殊类型链接
- SQLSERVER数据库表各种同步技术
- 【MVC 4】2.使用 Razor
- Android学习笔记02
- 【转载】理解OAuth 2.0
- WPF-控件-ListView
- 删除: warning C4996: &;#39;sprintf&;#39;: This function or variable may be unsafe. Consider 方法
- Jenkins的插件
- 一个栗子上手CSS3动画
- LeetCode 107. Binary Tree Level Order Traversal II (二叉树阶层顺序遍历之二)
- 豹哥嵌入式讲堂:ARM知识概要杂辑(4)- Cortex-M处理器性能指标
- 使用kingshard遇到的坑
- (4)java数据结构--集合类及其数据结构归纳-有大图
- 表达式引擎aviator
- grpc(一)grpc-java之helloworld
- Linux pip 命令无法使用问题
- 41.纯 CSS 绘制一支栩栩如生的铅笔
- 哈尔滨理工大学第七届程序设计竞赛初赛(BFS多队列顺序)
- Web 前端性能优化相关内容解析[转]
- timedatectl — Control the system time and date