bzoj1212 L语言 递推&Tire
来源:互联网 发布:阿里云国际 信用卡 编辑:程序博客网 时间:2024/06/06 09:53
这道题目写得好暴力可能都能过吧(←乱说的别理他( ̄_, ̄ ))。大概用Tire做到O(N*len),其中len表示一个单词的长度。实际上也非常好写,如果用刷表法也就30行代码。。一不小心把Tire开大了MLE了一下然后差点刷到第一页(←这也能拿出来说,就这点出息)。
AC代码如下:
#include<iostream>#include<cstdio>#include<cstring>#define N 1300005using namespace std;int n,m,tot,len,ch[305][26]; bool bo[N],f[N]; char s[N];void updata(int x){int now=ch[0][s[x]-'a'];for (; now; now=ch[now][s[++x]-'a']){if (bo[now]) f[x]=1; if (x==len) return; }}int main(){scanf("%d%d",&n,&m); int i,j;for (i=1; i<=n; i++){scanf("%s",s); int now=0;for (j=0; s[j]; j++){int x=s[j]-'a'; if (!ch[now][x]) ch[now][x]=++tot;now=ch[now][x];}bo[now]=1;}for (i=1; i<=m; i++){scanf("%s",s+1); len=strlen(s+1); int t=0,ans;memset(f,0,sizeof(f)); f[0]=1;for (j=0; j<=len; j++){if (t>10) break;if (!f[j]){ t++; continue; }t=0; ans=j; updata(j+1);}printf("%d\n",ans);}return 0;}
by lych
2016.2.6
0 0
- bzoj1212 L语言 递推&Tire
- bzoj1212: [HNOI2004]L语言
- 【BZOJ1212】【HNOI2004】L语言
- bzoj1212: [HNOI2004]L语言
- bzoj1212 L语言 trie
- bzoj1212: [HNOI2004]L语言
- bzoj1212: [HNOI2004]L语言
- BZOJ1212——L语言
- bzoj1212: [HNOI2004]L语言 Trie+dp
- 【BZOJ1212】[HNOI2004]L语言【Trie】【暴力】
- BZOJ1212: [HNOI2004]L语言 AC自动机
- bzoj1212 [HNOI2004]L语言(Trie+暴力)
- bzoj1212 [HNOI2004]L语言(AC+dp)
- [bzoj1212][字典树][dp]L语言
- [bzoj1212] [HNOI2004]L语言(trie+dp)
- [DP+AC自动机] BZOJ1212: [HNOI2004]L语言
- [BZOJ1212]-[HNOI2004]L语言-trie+DP
- [BZOJ1212][HNOI2004]L语言(AC自动机+dp)
- ACCESS网站示例-连载-数据库备份与还原类文件
- 用IO流复制图片
- junit4X系列--Assert与Hamcrest
- 智慧北京开发第二天(下)
- ACCESS网站示例-连载-提示类文件
- bzoj1212 L语言 递推&Tire
- 表格SQL参数定义
- 身为程序员的你需要学习的15种编程语言
- 下标
- Junit4X系列--hamcrest的使用
- 引导用户主动生产优质内容
- Android蓝牙开发全面总结
- ubuntu启动级别
- 学习两个程序员结对编程的故事