传送门

建好trie树

当$dp[j]==1$当且仅当存在$dp[k]=1$且$T[k+1,j]==word[i]$

然后乱搞就行了

 //minamoto
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=2e6+;
int n,m,len;char s[N];bool dp[N];
int ch[][],val[],tot;
inline void insert(char *s){
int u=,l=strlen(s+);
len=max(len,l);
for(int i=;i<=l;++i){
int c=s[i]-'a';
if(!ch[u][c]) ch[u][c]=++tot;
u=ch[u][c];
}
val[u]=;
}
inline bool find(int S,int T){
int u=;
for(int i=S;i<=T;++i){
int c=s[i]-'a';
if(!ch[u][c]) return ;
u=ch[u][c];
}
return val[u];
}
int main(){
// freopen("testdata.in","r",stdin);
scanf("%d%d",&n,&m);
for(int i=;i<=n;++i)
scanf("%s",s+),insert(s);
for(int i=;i<=m;++i){
scanf("%s",s+);
memset(dp,,sizeof(dp));
int l=strlen(s+),ans=;dp[]=;
for(int j=;j<=l;++j)
for(int k=max(j-len,);k<=j;++k)
if(dp[k]&&find(k+,j)){dp[j]=,ans=j;break;}
printf("%d\n",ans);
}
return ;
}

最新文章

  1. jsonp帮助你知道你关注的他或她喜欢什么歌曲
  2. [HTML/HTML5]6 使用图像
  3. jQuery外链新窗口打开
  4. Web Service 的工作原理
  5. git tag知多少
  6. Linux下软件安装,卸载,管理
  7. 什么是WEB服务器?
  8. 实现Server.UrlEncode和Server.UrlDecode功能的js代码
  9. 解决xShell4某些情况下按删除键会输出^H的问题
  10. Angular2.js——表单(下)
  11. SQL SERVER查看索引使用情况
  12. unix命令自我总结
  13. python_正则表达式随笔
  14. [git] 文件操作
  15. pycharm 取消 rebase 操作
  16. [javaSE] 看博客学习多线程的创建方式和优劣比较和PHP多线程
  17. FAT32文件系统学习(2) —— FAT表
  18. 利用neon技术对矩阵旋转进行加速
  19. PHP上传压缩包并自解压方法
  20. [BZOJ4027][HEOI2015]兔子与樱花 树形dp

热门文章

  1. maven GroupID和ArtifactID
  2. MySQL 中事务的实现
  3. deepin网络加速
  4. 使用chrome的F12开发人员工具进行网页前端性能测试
  5. hdu-5656 CA Loves GCD(dp+数论)
  6. Qt图形视图体系结构
  7. 一个节点rac+单节点dg网络配置(listener.ora与tnsnames.ora)
  8. UVA 10559 Blocks——区间dp
  9. Zigbee协议栈--Z-Stack的使用
  10. Oracle的case 用法