bzoj1212: [HNOI2004]L语言
传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1212
思路:这题AC自动机都不用建,只要trie就好了。。。
首先令f[i]表示到i的前缀能否被理解,那么答案就是f[i]==1时最大的i
转移也很简单,如果f[i]==1,这个串就可以从i+1开始匹配一个新单词,因为单词长度<=10,暴力在trie上走就是了
设trie上匹配到一个长度为j的单词,那么f[i+j]=1。
#include<cstdio>
#include<cstring>
#include<algorithm>
const int maxn=(1<<20)+10;
using namespace std;
int n,m,len,f[maxn];char s[maxn];;struct trie{int tot,ch[2010][26];bool ok[maxn];void insert(){int p=0,len=strlen(s);for (int i=0;i<len;p=ch[p][s[i]-'a'],i++) if (!ch[p][s[i]-'a']) ch[p][s[i]-'a']=++tot;ok[p]=1;}
}T;int work(int t){int ans=0;len=strlen(s+1);f[0]=t;for (int i=0;i<=len;i++){if (f[i]!=t) continue;else ans=i;for (int p=0,j=i+1;j<=len;j++){p=T.ch[p][s[j]-'a'];if (!p) break;if (T.ok[p]) f[j]=t;}}return ans;
}int main(){scanf("%d%d",&n,&m);for (int i=1;i<=n;i++) scanf("%s",s),T.insert();for (int i=1;i<=m;i++) scanf("%s",s+1),printf("%d\n",work(i));return 0;
}
转载于:https://www.cnblogs.com/thythy/p/5493562.html
bzoj1212: [HNOI2004]L语言相关推荐
- 【Trie】bzoj1212 [HNOI2004]L语言
枚举每个文章里已经在Trie中被标记为可能是分割处的字符,然后再从此处跑Trie,继续向后标记.由于单词数很少,因此复杂度可以接受,O(n*m*Len). #include<cstdio> ...
- [HNOI2004]L语言
1212: [HNOI2004]L语言 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1507 Solved: 666 [Submit][Stat ...
- 1212: [HNOI2004]L语言
1212: [HNOI2004]L语言 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 643 Solved: 252 [Submit][Statu ...
- 【bzoj1212】[HNOI2004]L语言 AC自动机
题目描述 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章T是由若干小写字母构成.一个单词W也是由若干小写字母构成.一个字典D是若干个单词的 ...
- 【HNOI2004】L语言
题目描述 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章T是由若干小写字母构成.一个单词W也是由若干小写字母构成.一个字典D是若干个单词的 ...
- LuoguP2292 L语言
题目描述 令f[i]表示文章的1-i是否能够由单词构成,那么f[i]=f[j]&&OKj+1,i. 其中OKj+1,i表示j+1到i能够由单词构成. 显然不能直接转移,考虑怎样快速算出 ...
- 2017.9.19 L语言 失败总结
写了一个下午+半个晚上好不容易调出来然后只有50分之后改了又错.错了又改之后发现自己写的是错的.. 这个题出的太刁钻了,万万没想到这个题是卡2e7的时限题. 所以可以暴力找每个点往后的匹配情况.... ...
- 提高篇 第二部分 字符串算法 第3章 Trie字典树
Trie(字典树)解析及其在编程竞赛中的典型应用举例 - Reqaw - 博客园 『一本通』Trie字典树 - YeLingqi - 博客园 字典树(Trie Tree) - 仰望高端玩家的小清新 - ...
- c语言设计思路和有点不足,C语言总结报告
1.当初你是如何做出选择计算机专业的决定的? 经过一个学期,你的看法改变了么,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 为什么? 当初报考计算机专业,是看到计算机专业在当今社会有良 ...
最新文章
- hive 时间转字符串_07697.0.3如何在Kerberos环境下用Ranger完成对Hive的行过滤及列脱敏...
- python2读取excel中文处理,【Python】【源码】利用Python读取Excel文件-续
- 根据目标选择减肥方法 少做无用功
- 社区团购平台得推社区团购系统 v3.1源码
- POST—GET—两种提交方式的区别
- 时间的正则表达式验证
- linux vi调至文件尾,linux vi从当前行复制到文件尾的命令?
- windows 快捷调用
- Genymotion安装apk问题,不能部署Genymotion-ARM-Translation_v1.zip
- python读取行政区txt文件实现行政区树_数据库的点数据根据行政区shp来进行行政区处理,python定时器实现...
- sql server 查询工具_分享一款开源的SQL查询优化工具--EverSQL
- 阿里天池大赛实战记录之菜鸟-需求预测与分仓规划
- git删除远程库文件
- Atitit.获取验证码图片通过web
- 做自媒体原创视频多平台分发,视频一键发布多平台方法教程
- 八卦在计算机应用,计算机编程在八卦图研究中的应用.doc
- 【重磅】聚焦券商终端业务,博睿数据发布新一代券商终端核心业务体验可观测平台
- 春天里,阳光下,无限的哀思和想念
- 段誉和男人们的普遍困境
- 微信小程序正则表达式
热门文章
- Python标准库02 时间与日期 (time, datetime包)
- 非空约束对数据更新的影响
- 洛谷P2286 [HNOI2004]宠物收养所 [STL,平衡树]
- 手打配对堆模板(支持push, pop, top, join)
- C语言中的static 详细分析 2014-10-11 15:15 143人阅读 评论(0) 收藏...
- 贪吃蛇原型实现基本思路
- unix下网络编程之I/O复用(二)
- 给线程变量pthread_t *thread动态分配空间
- fedora18 fedora17安装显卡驱动和网卡驱动
- UA MATH567 高维统计II 随机向量9 图的Max-cut问题 0.878近似算法