hdu 1247 字典树模版
来源:互联网 发布:linux下运行jar包 编辑:程序博客网 时间:2024/05/29 12:45
对于每个字符串,判断是否为hatword,可以先找此字符串不同的划分前缀,然后对每个前缀对应的后缀进行检查,是否满足题目条件。
#include<cstdio>#include<cstring>const int maxn=100000;int node[maxn][26];bool finish[maxn];int pos=0;void add(char *str){ int rt=0; for(int i=0;str[i];i++) { int x=str[i]-'a'; if(node[rt][x]==0) node[rt][x]=(++pos); rt=node[rt][x]; } finish[rt]=1;}bool check(char *str){ int len=strlen(str); int stack[1000],top=-1; int rt=0; for(int i=0;str[i];i++) { int x=str[i]-'a'; if(node[rt][x]==0) return false; rt=node[rt][x]; if(finish[rt]==1) {stack[++top]=i+1;} } while(top>=0) { rt=0; for(int i=stack[top--];str[i];i++) { int x=str[i]-'a'; if(node[rt][x]==0) break; rt=node[rt][x]; if(finish[rt]==1&&i==len-1) return true; } } return false;}char temp[50000][100];int main(){ memset(finish,0,sizeof(finish)); memset(node,0,sizeof(node)); int k=0; while(gets(temp[k])) { add(temp[k]); k++; } for(int i=0;i<k;i++) { if(check(temp[i])) printf("%s\n",temp[i]); } return 0;}
0 0
- hdu 1247 字典树模版
- hdu 1247 Hat’s Words (字典树模版)
- 《字典树》hdu acm 5.2.2 字典树模版
- hdu 1251 统计难题(字典树模版)
- HDU 1251 统计难题(字典树模版)
- 字典树 模版
- 字典树 基础模版
- 字典树模版
- 字典树模版
- 字典树模版
- 字典树(模版+源码)
- 字典树模版
- 字典树(讲解+模版)
- 字典树 讲解+模版
- HDU1251-字典树模版
- 字典树模版
- 字典树模版
- 《字典树》数组模版
- 电池充电时扩散页面动画效果相关
- MySQL Windows ZIP 免安装版的设置和启动
- swap
- google 著名技术
- 如何用笔记本建立虚拟wifi(新手教程)
- hdu 1247 字典树模版
- 国外程序员整理的 C++ 资源大全
- for循环内变量定义问题
- ROS 学习系列 -- 使用Rviz 可视化调试9轴机器人姿态融合
- 21 打开照相机
- centOS-oracle安装
- ubuntu RPM should not be used directly install RPM packages, use Alien instead
- poj 2488 dfs
- shopex各文件路径