bzoj 1212 L语言 Trie+DP
来源:互联网 发布:c 变量定义数组长度 编辑:程序博客网 时间:2024/05/19 14:51
f[ i ] 为串前i位能否被理解,单词长不超过10,所以f[ i ]可以暴力转移……
#include<cstdio>#include<cstring>#include<iostream>#define maxn 205using namespace std;char s[1500005];struct Trie{ int val[maxn]; int ch[maxn][27],cnt; void insert() { int p=0; int n=strlen(s+1); for(int i=1;i<=n;i++) { int c=s[i]-'a'+1; if(!ch[p][c]) ch[p][c]=++cnt; p=ch[p][c]; } val[p]++; } bool find(int x,int y) { int p=0; for(int i=x;i<=y;i++) { int c=s[i]-'a'+1; if(!ch[p][c]) return false; p=ch[p][c]; } if(val[p]) return true; return false; }}trie;bool f[1500005];int main(){ int n,m,l=0; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { scanf("%s",s+1); trie.insert();int p=strlen(s+1); l=max(l,p); } while(m--) { f[0]=1; scanf("%s",s+1); int len=strlen(s+1); for(int i=1;i<=len;i++) { f[i]=0; for(int j=l;j>0;j--) { if(i-j<0) continue; if(f[i-j]&&trie.find(i-j+1,i)) {f[i]=1;break;} } } int ans=0; for(int i=len;i>=1;i--) if(f[i]==1){ans=i;break;} printf("%d\n",ans); } return 0;}
1 0
- bzoj 1212 L语言 Trie+DP
- bzoj 1212 L语言 DP+Trie树
- 【BZOJ】1212 [HNOI2004]L语言 Trie
- BZOJ 1212 HNOI 2004 L语言 Trie树
- [省选前题目整理][BZOJ 1212][HNOI 2004]L语言(Trie)
- 大视野1212--[HNOI2004]L语言(Trie+DP)
- bzoj1212: [HNOI2004]L语言 Trie+dp
- [bzoj1212] [HNOI2004]L语言(trie+dp)
- [BZOJ1212]-[HNOI2004]L语言-trie+DP
- bzoj 1212: [HNOI2004]L语言(AC自动机+DP)
- BZOJ 1212 [HNOI2004] L语言 AC自动机+DP
- Bzoj 1212: [HNOI2004]L语言(AC自动机+DP)
- BZOJ 1212 HNOI2004 L语言 AC自动机(Trie树)+动态规划
- 【BZOJ】【P1212】【HNOI2004】【L语言】【题解】【dp】
- BZOJ 1212: [HNOI2004]L语言
- bzoj 1212: [HNOI2004]L语言
- bzoj 1212: [HNOI2004]L语言
- bzoj 1212 [HNOI2004]L语言
- du命令
- vmware workstation虚拟机导入vmware EXi 6.5
- 基于U2P-016模块,通过51单片机或者ARM的串口控制惠普打印机
- HashSet打印字符串
- JavaWeb总结
- bzoj 1212 L语言 Trie+DP
- 调试案例20170415
- 二叉树的最大深度
- Hexo 个人博客搭建
- bzoj 2553 禁忌 AC自动机+期望DP
- 23. Merge k Sorted Lists
- 机器学习——深度学习(Deep Learning)
- bzoj 3940 & 3942 KMP || AC自动机
- spring stream http 流式计算