POJ 2001 字典树(入门题)
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<vector>
#include<stack>
#include<cmath>
#include<queue>
#include<map>
using namespace std;
struct Node
{
int c;
int next[];
} node[];
int cnt;
int newnode()
{
++cnt;
node[cnt].c=;
for(int i=; i<; i++)
node[cnt].next[i]=-;
return cnt;
}
char s[][];
int len[];
void insert(int rt,int tt,int now)
{
if(now>len[tt])return;
int p=s[tt][now]-'a'; if(node[rt].next[p]==-)
{
int l=newnode();
node[rt].next[p]=l;
node[l].c+=; insert(l,tt,now+);
}
else
{
int l=node[rt].next[p];
node[l].c+=; insert(l,tt,now+);
}
}
void print(int rt,int tt,int now)
{
if(now>len[tt])return;
printf("%c",s[tt][now]);
if(node[rt].c==)return;
int p=s[tt][now+]-'a';
print(node[rt].next[p],tt,now+);
}
int main()
{
int k=;
cnt=;
node[].c=;
for(int i=;i<;i++)
node[].next[i]=-;
while(~scanf("%s",s[++k]+))
{
len[k]=strlen(s[k]+);
insert(,k,); }
for(int i=;i<=k;++i)
{
printf("%s ",s[i]+);
int p=s[i][]-'a';
print(node[].next[p],i,);
printf("\n");
}
return ;
}
POJ 2001 字典树(入门题)的更多相关文章
- hdu 1251 统计难题 (字典树入门题)
/******************************************************* 题目: 统计难题 (hdu 1251) 链接: http://acm.hdu.edu. ...
- HDU 4825 Xor Sum(01字典树入门题)
http://acm.hdu.edu.cn/showproblem.php?pid=4825 题意: 给出一些数,然后给出多个询问,每个询问要从之前给出的数中选择异或起来后值最大的数. 思路:将给出的 ...
- HDU 1251 统计难题(字典树模板题)
http://acm.hdu.edu.cn/showproblem.php?pid=1251 题意:给出一些单词,然后有多次询问,每次输出以该单词为前缀的单词的数量. 思路: 字典树入门题. #inc ...
- POJ 2503 字典树
题目链接:http://poj.org/problem?id=2503 题意:给定一个词典,输入格式为[string1' 'string2] 意思是string2的值为string1. 然后给定一波 ...
- 字典树模板题(统计难题 HDU - 1251)
https://vjudge.net/problem/HDU-1251 标准的字典树模板题: 也注意一下输入方法: #include<iostream> #include<cstdi ...
- CH 1601 - 前缀统计 - [字典树模板题]
题目链接:传送门 描述给定 $N$ 个字符串 $S_1,S_2,\cdots,S_N$,接下来进行 $M$ 次询问,每次询问给定一个字符串 $T$,求 $S_1 \sim S_N$ 中有多少个字符串是 ...
- hdu1305 字典树水题
题意: 给你一些字符串,然后问你他们中有没有一个串是另一个串的前缀. 思路: 字典树水题,(这种水题如果数据不大(这个题目不知道大不大,题目没说估计不大),hash下也行,把每个 ...
- HDU 1251 统计难题(字典树入门模板题 很重要)
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submi ...
- POJ 1451 T9 (字典树好题)
背景:为了方便九宫格手机用户发短信,希望在用户按键时,根据提供的字典(给出字符串和频数),给出各个阶段最有可能要打的单词. 题意: 首先给出的是字典,每个单词有一个出现频率.然后给出的是询问,每个询问 ...
随机推荐
- Android中Linux suspend/resume流程
Android中Linux suspend/resume流程首先我们从linux kernel 的suspend说起,不管你是使用echo mem > /sys/power/state 或者使用 ...
- NOSQL Mongo入门学习笔记 - C++连接Mongodb(三)
OS环境: Centos 7.1 release X86_64 编译环境: G++ 4.8.3 已经成功搭建好了Mongodb,也初步在命令行中的查询与写入数据的基本方法,现在通过C++来连接Mong ...
- C# Winform 涉及的拖放操作总结
在开发程序的时候,为了提高用户的使用体验,或满足相关用户的功能,总是离不开拖放功能.而本文是总结winform下的常用拖放操作.主要有 1.textbox接受拖放的文件2.listbox允许用户自定义 ...
- 解决MS Azure 不能ping的问题
PsPing v2.01 PsPing implements Ping functionality, TCP ping, latency and bandwidth measurement. Use ...
- 1017: [JSOI2008]魔兽地图DotR - BZOJ
Description DotR (Defense of the Robots) Allstars是一个风靡全球的魔兽地图,他的规则简单与同样流行的地图DotA (Defense of the Anc ...
- 【概率】poj 2096:Collecting Bugs
Description Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other ...
- [转载]mvc使用JsonResult返回Json数据
controller 中定义以下方法: public JsonResult UpdateSingle(int id, string actionName, string actionValue) { ...
- PHP MSSQL数据操作PDO API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- About javascript closure
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Closures?redirectlocale=en-US&redi ...
- Firefly安装说明 与 常见问题
原地址:http://bbs.gameres.com/thread_223688.html 第三方库依赖: twisted, python-memcached ftp://ftp.tummy.c ...