洛谷 P2292 [HNOI2004]L语言
题目描述
标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的。现在你要处理的就是一段没有标点的文章。
一段文章T是由若干小写字母构成。一个单词W也是由若干小写字母构成。一个字典D是若干个单词的集合。我们称一段文章T在某个字典D下是可以被理解的,是指如果文章T可以被分成若干部分,且每一个部分都是字典D中的单词。
例如字典D中包括单词{‘is’, ‘name’, ‘what’, ‘your’},则文章‘whatisyourname’是在字典D下可以被理解的,因为它可以分成4个单词:‘what’, ‘is’, ‘your’, ‘name’,且每个单词都属于字典D,而文章‘whatisyouname’在字典D下不能被理解,但可以在字典D’=D+{‘you’}下被理解。这段文章的一个前缀‘whatis’,也可以在字典D下被理解,而且是在字典D下能够被理解的最长的前缀。
给定一个字典D,你的程序需要判断若干段文章在字典D下是否能够被理解。并给出其在字典D下能够被理解的最长前缀的位置。
输入输出格式
输入格式:
输入文件第一行是两个正整数n和m,表示字典D中有n个单词,且有m段文章需要被处理。之后的n行每行描述一个单词,再之后的m行每行描述一段文章。
其中1<=n, m<=20,每个单词长度不超过10,每段文章长度不超过1M。
输出格式:
对于输入的每一段文章,你需要输出这段文章在字典D可以被理解的最长前缀的位置。
输入输出样例
4 3
is
name
what
your
whatisyourname
whatisyouname
whaisyourname
14 (整段文章’whatisyourname’都能被理解)
6 (前缀’whatis’能够被理解)
0 (没有任何前缀能够被理解) 字典树+不知道是不是dp的dp
COGS Rank 1 (偷笑 )
屠龙宝刀点击就送
#include <ctype.h>
#include <cstring>
#include <cstdio>
#define N 1000001 inline void Read(int &x)
{
register char ch=getchar();
for(x=;!isdigit(ch);ch=getchar());
for(;isdigit(ch);x=x*+ch-'',ch=getchar());
}
char text[N];
bool exict[N];
int len,pos,ans,f[N],n,m,siz=,trie[N][];
inline void ins(char *a)
{
int p=;
for(char *q=a;*q;++q)
{
int id=*q-'a';
if(!trie[p][id]) trie[p][id]=++siz;
p=trie[p][id];
}
exict[p]=;
}
void query(int k,int st)
{
if(k==len||!st) return;
if(exict[st]) f[k]=pos;
query(k+,trie[st][text[k+]-'a']);
}
int Main()
{
// freopen("language.in","r",stdin);
// freopen("language.out","w",stdout);
Read(n);
Read(m);
char str[];
for(int i=;i<=n;++i)
{
scanf("%s",str);
ins(str);
}
for(pos=;pos<=m;++pos)
{
scanf("%s",text);
len=strlen(text),ans=;
query(,trie[][text[]-'a']);
for(int j=;j<len;++j)
{
if(f[j]!=pos) continue;
ans=j+;
query(j+,trie[][text[j+]-'a']);
}
printf("%d\n",ans);
}
return ;
}
int sb=Main();
int main(int argc,char *argv[]){;}
洛谷 P2292 [HNOI2004]L语言的更多相关文章
- 洛谷 P2292 [HNOI2004] L语言 解题报告
P2292 [HNOI2004] L语言 题目描述 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章\(T\)是由若干小写字母构成.一个单词 ...
- 洛谷P2292 [HNOI2004]L语言
传送门 建好trie树 当$dp[j]==1$当且仅当存在$dp[k]=1$且$T[k+1,j]==word[i]$ 然后乱搞就行了 //minamoto #include<iostream&g ...
- 洛谷.2292.[HNOI2004]L语言(Trie DP)
题目链接 /* 简单的DP,查找是否有字典中的单词时在Trie树上做 要注意在最初Match(0)一遍后,i还是要从0开始匹配,因为如果有长度为1的单词,Match(i+1)不会从1更新 1M=102 ...
- 【洛谷P2292】L语言
题目大意:给定一个长度为 N 的字符串和一个字典,字典中所有的字符串的长度均不超过 10,求给定的字符串从前往后最多有多少位可以与字典匹配. 题解:设 \(dp[i]\) 表示串的前 i 位是否能够与 ...
- 洛谷:P2292 [HNOI2004]L语言(DP+Trie树)
P2292 [HNOI2004]L语言 题目链接:https://www.luogu.org/problemnew/show/P2292 题目描述 标点符号的出现晚于文字的出现,所以以前的语言都是没有 ...
- Luogu P2292 [HNOI2004]L语言(Trie+dp)
P2292 [HNOI2004]L语言 题面 题目描述 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章 \(T\) 是由若干小写字母构成. ...
- 2021.11.09 P2292 [HNOI2004]L语言(trie树+AC自动机)
2021.11.09 P2292 [HNOI2004]L语言(trie树+AC自动机) https://www.luogu.com.cn/problem/P2292 题意: 标点符号的出现晚于文字的出 ...
- 洛谷(cogs 1293/bzoj 1212) P2292 [HNOI2004]L语言
1293. [HNOI2004] L语言 ★★★ 输入文件:language.in 输出文件:language.out 简单对比时间限制:1 s 内存限制:162 MB [题目描述] ...
- Luogu P2292 [HNOI2004]L语言
题目链接 \(Click\) \(Here\) 好久没写\(DP\)了真是水平下降不少,一眼把这个题搞成贪心了,然后一发交上只有\(37\)分\(QwQ\) 这个题好像还可以\(AC\)自动机胡搞?不 ...
随机推荐
- seafile文档
https://manual-cn.seafile.com/deploy_windows/download_and_setup_seafile_windows_server.html
- Walk of Length 6
简要题意: 给一n(n<=2000)个点的有标号无向图,在图上从1出发走六步回到1,问有多少种不是六元简单环的情况. 解法: 用暴力找到31种走法,环有9种形状: 分为9种,统计出每一种情况的方 ...
- 改变bootstrapSwitch按钮状态
$('.switch-state').bootstrapSwitch('state',true);
- 如何用纯js做一个大富翁游戏
下面这张是效果图: 先立个flag,一个星期内把这个坑填了
- E20190324-hm
splice vt. 绞接; 捻接(两段绳子); 胶接; 粘接(胶片.磁带等); n. 胶接处,粘接处,铰接处;
- gSoap传输二进制数据
最近使用gSoap传输二进制数据,遇到问题.gSoap不能一次传输二进制数据.所以使用分包传送. struct xsd_DwgInfo { ];//分包大小 int m_nReadSize;// bo ...
- Peptidomics analysis of milk protein-derived peptides
released over time in the preterm infant stomach
(文献分享一组-陈凌云)
题目:Peptidomics analysis of milk protein-derived peptides released over time in the preterm infant st ...
- 第二十篇 .NET高级技术之C#中的线程(二) 线程同步基础
1.同步要领 下面的表格列展了.NET对协调或同步线程动作的可用的工具: 简易阻止方法 构成 目的 Sleep 阻止给定的时间周期 Join 等待另一个线程 ...
- 新手搭建springmvc+mybits框架的经验分享
1.搭建过程中遇到的问题: ①由于是第一次使用springmvc框架,对它的认识真的很浅,只知道他属于spring旗下的产品,仅此而已.于是搭建过程中确实遇到不少麻烦,因为之前的项目都是老师带着做的, ...
- WKWebView简单使用
#import <WebKit/WebKit.h> @interface SchoolOverviewsViewController ()<WKUIDelegate,WKNaviga ...