POJ 2001 Shortest Prefixes(字典树)
来源:互联网 发布:linux查看文件内容命令 编辑:程序博客网 时间:2024/04/23 20:35
Shortest Prefixes
题目链接:
http://poj.org/problem?id=2001
解题思路:
给你一定数量的串,然后让你求出能分辨每一个串的最小前缀。。。
用字典树存储每一个串,并作标记,直到找到一个标记为1的字母,输出即可。。。
AC代码:
#include<iostream>#include<cstdio>#include<cstring>using namespace std;struct node{ int cnt; struct node *next[26]; node() { cnt=0; memset(next,0,sizeof(next)); }};node *root=NULL;char str[1010][21];void build(char *s){ node *p=root,*tmp; int i,l=strlen(s); for(i=0;i<l;i++) { if(p->next[s[i]-'a']==NULL) { tmp=new node; p->next[s[i]-'a']=tmp; } p=p->next[s[i]-'a']; p->cnt++; }}void findtrie(char *s){ node *p=root; int i,l=strlen(s); for(i=0;i<l;i++) { printf("%c",s[i]); p=p->next[s[i]-'a']; if(p->cnt==1) break; } printf("\n");}int main(){ root=new node; int i,num=0; while(scanf("%s",str[num++])!=EOF) build(str[num-1]); for(i=0;i<num;i++) { printf("%s ",str[i]); findtrie(str[i]); } return 0;}
1 0
- POJ 2001:Shortest Prefixes(字典树)
- poj 2001 -- Shortest Prefixes ( 字典树 )
- POJ 2001-Shortest Prefixes(字典树)
- POJ 2001 Shortest Prefixes(字典树)
- POJ 2001 Shortest Prefixes(字典树)
- poj 2001 Shortest Prefixes(字典树)
- POJ - 2001 - Shortest Prefixes (字典树!!)
- POJ 2001 Shortest Prefixes(字典树)
- POJ 2001 Shortest Prefixes(字典树)
- POJ 2001 Shortest Prefixes(字典树)
- POJ 2001 Shortest Prefixes(字典树)
- 【POJ】2001 - Shortest Prefixes(字典树)
- POJ 2001 Shortest Prefixes(字典树)
- poj 2001 Shortest Prefixes(字典树)
- poj 2001Shortest Prefixes(字典树)
- poj 2001 Shortest Prefixes(字典树)
- POJ 2001 Shortest Prefixes ( 字典树 )
- POJ 2001 Shortest Prefixes 字典树Trie
- bzoj1007【hnoi2008】水平可见直线
- 异常对象的生成
- HashMap和HashSet的区别
- Quick Reference: git 的.gitignore文件
- OC 字典与数组 中文输出 NSlog
- POJ 2001 Shortest Prefixes(字典树)
- 如何手动解析CrashLog
- 最小二乘法
- UVA 1329Corporative Network【并查集】
- cin.get 和 cin.getline 的区别
- 由浅入深探究 MySQL索引结构原理、性能分析与优化
- 华为OJ 字符串最后一个单词的长度
- Squence 设置主键自动增长,设置起始值、步长
- oracle监听启不了或在服务项中没有监听,或者是连接时,适配器错误