HDU 5687 字典树入门
Problem C
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 1423 Accepted Submission(s): 426
1、insert : 往神奇字典中插入一个单词
2、delete: 在神奇字典中删除所有前缀等于给定字符串的单词
3、search: 查询是否在神奇字典中有一个字符串的前缀等于给定的字符串
insert hello
insert hehe
search h
delete he
search hello
No
#include<bits/stdc++.h>
using namespace std;
struct node
{
int have;
node *child[];
node(){have=;for(int i=;i<;++i) child[i]=NULL;}
};
node *root;
void release(node *p)
{
if(p==NULL) return;
for(int i=;i<;++i){
if(p->child[i]!=NULL) release(p->child[i]);
}
delete p;
}
void Insert(char *s)
{
node *p=root;
int n1=strlen(s);
for(int i=;i<n1;++i){int t=s[i]-'a';
if(p->child[t]==NULL)
p->child[t]=new node();
p=p->child[t];
p->have++;
}
} void Delete(char *s)
{ node *p=root,*pre=p;
int n1=strlen(s),t,num=;
for(int i=;i<n1;++i){ t=s[i]-'a';
if(p->child[t]==NULL) return;
pre=p;
p=p->child[t];
}num=p->have;
release(p);
pre->child[t]=NULL;
p=root;
for(int i=;i<n1-;++i){
p=p->child[s[i]-'a'];
p->have-=num;
}
}
bool Search(char *s)
{
node *p=root;
int n1=strlen(s);
for(int i=;i<n1;++i){
int t=s[i]-'a';
if(p->child[t]==NULL) return ;
p=p->child[t];
}
if((p->have)<) return ;
return ;
}
int main()
{
int N,i,j;
char s1[],s2[];
cin>>N;
root=new node();
while(N--){
scanf("%s%s",s1,s2);
if(!strcmp(s1,"insert")){
Insert(s2) ;
}
else if(!strcmp(s1,"delete")){
Delete(s2);
}
else if(!strcmp(s1,"search")){
Search(s2)?puts("Yes"):puts("No");
}
}release(root);
return ;
}
HDU 5687 字典树入门的更多相关文章
- HDU 5687 字典树插入查找删除
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5687 2016百度之星资格赛C题,直接套用字典树,顺便巩固了一下自己对字典树的理解 #include< ...
- hdu 1247 (字典树入门)
Hat’s Words Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- hdu 1251 统计难题 (字典树入门题)
/******************************************************* 题目: 统计难题 (hdu 1251) 链接: http://acm.hdu.edu. ...
- HDU 4825 Xor Sum(01字典树入门题)
http://acm.hdu.edu.cn/showproblem.php?pid=4825 题意: 给出一些数,然后给出多个询问,每个询问要从之前给出的数中选择异或起来后值最大的数. 思路:将给出的 ...
- HDU 1251 统计难题(字典树入门模板题 很重要)
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submi ...
- HDU 5384 字典树、AC自动机
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5384 用字典树.AC自动机两种做法都可以做 #include<stdio.h> #includ ...
- hdu 2112(字典树+最短路)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu 2072(字典树模板,set,map均可做)
地址:http://acm.hdu.edu.cn/showproblem.php?pid=2072 lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词 ...
- Chip Factory HDU - 5536 字典树(删除节点|增加节点)
题意: t组样例,对于每一组样例第一行输入一个n,下面在输入n个数 你需要从这n个数里面找出来三个数(设为x,y,z),找出来(x+y)^z(同样也可以(y+z)^1)的最大值 ("^&qu ...
随机推荐
- python16_day25【crm】
一.CRM模拟admin功能 1.过滤功能 2.显示数据分页 3.动态菜单 项目:https://github.com/willianflasky/growup/tree/master/s16/hom ...
- sqlserver2008自动备份,自动删除较早的别分文件
1.自动备份数据库 完成时候可以在维护计划中看到这个计划任务(xxxback),同事在作业里面会有个类似名称的作业(sql代理要启动,才能自动执行). 2.自动删除较早的备份文件 邮件选择上面的维护计 ...
- java并发 —— Lock
java并发 -- Lock 关于java并发中的锁知识,少不了 Lock.本文转载自:Java并发编程:Lock. 从Java 5之后,在java.util.concurrent.locks包下提供 ...
- 什么是Http无状态?Session、Cookie、Token三者之间的区别
一.什么是HTTP无状态? 1.1定义: HTTP无状态协议,是指协议对于交互性场景没有记忆能力. 1.2举个例子: 在点击一个纯的html网页,请求获取服务器的html文件资源时,每次http请求都 ...
- BZOJ 1316: 树上的询问
挺裸的点分治 刚开始想用map水过去,然后做p次点分治,然后T到自闭 最后发现可以sort一遍,然后去重,记录每个数出现的次数,这样就可以双指针,不会漏掉了 #include <bits/std ...
- 防止常见XSS 过滤 SQL注入 JAVA过滤器filter
XSS : 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往W ...
- session与cookie的详解
在PHP面试中 经常碰到请阐述session与cookie的区别与联系,以及如何修改两者的有效时间. 大家都知道,session是存储在服务器端的,cookie是存储在客户端的,session依赖于c ...
- 如何配置IIS服务器?
1, 先安装IIS 然后安装vs; 注: 顺序颠倒则执行cmd命令: 1,cd \ 2,cd Windows 3, cd Microsoft.NET 4, dir 5,cd Framework 6, ...
- 20145301《Java程序设计》第10周学习总结
20145301 <Java程序设计>第十周学习总结 教材学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据 计算机网络 路由器和交换机组成了核心的计算机 ...
- excel日期插件
效果图 Private Sub DTPicker1_Click() ActiveCell.Value = DTPicker1.Value DTPicker1.Visible = False End S ...