POJ 2001-Shortest Prefixes(字典树)
来源:互联网 发布:matlab编程语言 编辑:程序博客网 时间:2024/03/29 09:55
题意:就是给你一些字符串,然后输出本身和本身字符串中最短非公共的前缀。
思路:用字典将之前的字符串插入字典树中,然后查询次数为1的节点。没有就输出整个字符串。
#include<stdio.h>#include<string.h>int cur=1;char s[20011][50];struct node{ int next[26]; int idx; void init() { idx=0; memset(next,-1,sizeof(next)); }}t[1000111];void insert(char *s){ int len=strlen(s),p=0; for(int i=0;i<len;i++) { int x=s[i]-'a'; if(t[p].next[x]==-1) { t[cur].init(); t[p].next[x]=cur++; } p=t[p].next[x]; t[p].idx++; }}void query(char *s){ int i=0,p=0; while(s[i]) { int x=s[i]-'a'; if(t[p].idx==1) { printf("%s ",s); s[i]='\0'; printf("%s\n",s); return ; } p=t[p].next[x]; i++; } printf("%s %s\n",s,s);}int main(){ int cnt=0; t[0].init(); while(scanf("%s",s[cnt++])!=EOF) { insert(s[cnt-1]); } for(int i=0;i<cnt;i++) { query(s[i]); } return 0;}
0 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
- C++小知识
- 如何开发EtherCAT从站设备
- 设计模式:工厂模式
- CentOs安装node.js
- PHP 数组的操作
- POJ 2001-Shortest Prefixes(字典树)
- 关于ORA-00979 不是 GROUP BY 表达式错误的解释
- hdu 4864 Task(贪心)
- Play Framework 各种 render
- ADSL上网TP-LINK路由器设置方法
- poj1013-Counterfeit Dollar(简单逻辑题)
- Python 错误:Error: Inconsistent indentation detected!...
- 2014 Multi-University Training Contest 1 —I Turn the pokers
- 【足迹C++primer】51、面向对象编程概述