[bzoj1212] [HNOI2004]L语言(trie+dp)
来源:互联网 发布:ubuntu命令行更新软件 编辑:程序博客网 时间:2024/05/27 09:46
传送门
我们可以建一个trie树,然后dp
状态:
然后我们就可以在trie树上暴力地边走边判断,当
边界:
代码:
#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>#include<cstdlib>#define ll long longusing namespace std;int tot;int ch[210][26];int val[210];inline void insert(char *s){ int u=0;int n=strlen(s); for(int i=0;i<n;i++){ int c=s[i]-'a'; if(!ch[u][c])ch[u][c]=++tot; u=ch[u][c]; } val[u]=1;}int p[1000005];inline int find(char *s){ memset(p,0,sizeof(p)); int n=strlen(s+1); int ans; p[0]=1; for(int i=0;i<=n;i++){ if(!p[i])continue; else ans=i; for(int u=0,j=i+1;j<=n;j++){ int c=s[j]-'a'; if(!ch[u][c])break; u=ch[u][c]; if(val[u])p[j]=1; } } return ans;}int n,m;char ch1[21];char ch2[1000005];int main(){ scanf("%d %d",&n,&m); for(int i=1;i<=n;i++){ scanf("%s",ch1); insert(ch1); } for(int i=1;i<=m;i++){ scanf("%s",ch2+1); printf("%d\n",find(ch2)); } return 0;}
阅读全文
0 0
- [bzoj1212] [HNOI2004]L语言(trie+dp)
- bzoj1212: [HNOI2004]L语言 Trie+dp
- [BZOJ1212]-[HNOI2004]L语言-trie+DP
- bzoj1212 [HNOI2004]L语言(Trie+暴力)
- bzoj1212 [HNOI2004]L语言(AC+dp)
- 【BZOJ1212】[HNOI2004]L语言【Trie】【暴力】
- [BZOJ1212][HNOI2004]L语言(AC自动机+dp)
- [DP+AC自动机] BZOJ1212: [HNOI2004]L语言
- bzoj1212: [HNOI2004]L语言
- 【BZOJ1212】【HNOI2004】L语言
- bzoj1212: [HNOI2004]L语言
- bzoj1212: [HNOI2004]L语言
- bzoj1212: [HNOI2004]L语言
- Trie——Luogu2292/BZOJ1212 [HNOI2004]L语言
- bzoj1212 L语言 trie
- BZOJ1212: [HNOI2004]L语言 AC自动机
- trie-[HNOI2004]L语言
- 大视野1212--[HNOI2004]L语言(Trie+DP)
- Java笔记之数组及内存分配
- zookeeper和kafka的介绍
- ACM第二次WXYZ
- 顺序表应用1:多余元素删除之移位算法
- Cena、Lemon自动AC机
- [bzoj1212] [HNOI2004]L语言(trie+dp)
- SSL P2034 最长链
- 1034: 递归4(二叉树的后序遍历)
- ThreadLocal
- java实现快速排序算法
- Python基本语法_强制数据类型转换
- thinkphp3.2 I('get.id') 在 ningx代理apache下面错误 GET POST参数都变成_URL_ 解决方法 I函数
- XML文档中的字符引用和实体引用
- HDU