HDU 5687 字典树插入查找删除
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5687
2016百度之星资格赛C题,直接套用字典树,顺便巩固了一下自己对字典树的理解
#include<stdio.h>
#include<string.h>
struct node{
int next[];
int cnt;
void init(){
cnt = ;//计数
memset(next,-,sizeof(next));
}
};
struct node trie[];
int tot = ;//记录节点数 void insert(char *s){
int cur = ,len = strlen(s);
for(int i = ;i<len;i++){
int temp = s[i]-'a';
int next = trie[cur].next[temp];
if(next == -){
next = ++tot;
trie[next].init();
trie[cur].next[temp] = next;
}
cur = next;
trie[cur].cnt++;
}
}
int find(char *s){
int cur = ,len = strlen(s);
for(int i = ;i<len;i++){
int temp = s[i]-'a';
int next = trie[cur].next[temp];
if(next == -)
return ;
cur = next;
}
return trie[cur].cnt>;//注意
}
void del(char *s){
int cur = ,late,len = strlen(s);
//这里特判一下要删除的字符串是否存在
for(int i=;i<len;i++){
int tmp=s[i]-'a';
int next=trie[cur].next[tmp];
if(next==-) return;
late = cur;
cur=next;
}
cur = ;
for(int i = ;i<len;i++){
int temp = s[i]-'a';
int next = trie[cur].next[temp];
late = cur;
cur = next;
trie[cur].cnt--;
}
trie[cur].init();
int temp = s[len-]-'a';
trie[late].next[temp] = -;
}
int main(){
int n;
scanf("%d",&n);
char op[],s[];
trie[].init();
while(n--){
scanf(" %s %s",op,s);
if(op[] == 'i'){
insert(s);
}else if(op[] == 's'){
if(find(s))
puts("Yes");
else
puts("No");
}else{
del(s);
}
}
return ;
}
HDU 5687 字典树插入查找删除的更多相关文章
- HDU 5687 字典树入门
Problem C Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- B树——插入和删除
B树--插入和删除 B树的插入 5阶B数--结点关键字个数向上取整m/2-1≤n≤m-1 即2≤n≤4 连续插入5个元素后,超出来了. 在插入key后,若导致原结点关键字数超过上限,则从中间位置(m/ ...
- Phone List HDU - 1671 字典树
题意:给出一堆一组一组的数字 判断有没有哪一个是另外一个的前缀 思路:字典树 插入的同时进行判断 不过 当处理一组数字的时候 需要考虑的有两点1.是否包含了其他的序列2.是否被其他序列包含 刚开始 ...
- Chip Factory HDU - 5536 字典树(删除节点|增加节点)
题意: t组样例,对于每一组样例第一行输入一个n,下面在输入n个数 你需要从这n个数里面找出来三个数(设为x,y,z),找出来(x+y)^z(同样也可以(y+z)^1)的最大值 ("^&qu ...
- AVL树插入和删除
一.AVL树简介 AVL树是一种平衡的二叉查找树. 平衡二叉树(AVL 树)是一棵空树,或者是具有下列性质的二叉排序树: 1它的左子树和右子树都是平衡二叉树, 2且左子树和右子树高度之差的 ...
- hdu 1247 (字典树入门)
Hat’s Words Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- 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 1075(字典树)
What Are You Talking About Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 102400/204800 K ...
随机推荐
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- Docker change directory
https://forums.docker.com/t/how-do-i-change-the-docker-image-installation-directory/1169/2 How do I ...
- ASP------ActioinResult之多种返回值
转载: http://www.cnblogs.com/jiagoushi/archive/2013/01/24/2875454.html http://www.cnblogs.com/lvcha/ar ...
- Struts2入门-十分简单的登陆
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互. 开始编写St ...
- coreseek 中文搜索和高亮
配置文件 # # Minimal Sphinx configuration sample (clean, simple, functional) # source post { type = mysq ...
- centos'的yum安装php的memcache扩展
centos'的yum安装php的memcache扩展 博客分类: linux 让php能使用memcached服务的扩展有两种:memcache 和 memcached 1. 先安装libmem ...
- ES6标准
1. ES6标准感觉越来越向传统语言靠拢了,以后写到ES6的标准都记录下: ,,]; // =>操作符 array.forEach(v => console.log(v)); 是不是简化了 ...
- Photoshop 融合属性 Unity Shader
http://forum.unity3d.com/threads/free-photoshop-blends.121661/
- thinkphp查询
public function index(){ $result = M('content')->select() $this->assig('result',$result); $thi ...
- echosp 销量排行 新增实际价格
找到lib_goods.php第147行,代码 $sql = 'SELECT g.goods_id, g.goods_name, g.shop_price,g.goods_thumb, SUM(og. ...