题目大意:给定一个长度为 N 的字符串和一个字典,字典中所有的字符串的长度均不超过 10,求给定的字符串从前往后最多有多少位可以与字典匹配。

题解:设 \(dp[i]\) 表示串的前 i 位是否能够与字典匹配,若 \(dp[i]=1\),则对 s[i+1,~] 部分与字典进行匹配,即:对可以匹配的最大长度进行拓展。由于字典中每个串的长度很小,一次拓展最多只会执行 10 次运算,因此总的复杂度为 \(O(10*N*M)\)。

代码如下

#include <bits/stdc++.h>
using namespace std;
const int maxn=1e6+10; int trie[200][26],tot=1,ed[maxn];
int n,m,dp[maxn];
char s[20],S[maxn]; void insert(char *ss){
int len=strlen(ss+1),now=1;
for(int i=1;i<=len;i++){
int ch=ss[i]-'a';
if(!trie[now][ch])trie[now][ch]=++tot;
now=trie[now][ch];
}
ed[now]=1;
}
void find(char *ss){
memset(dp,0,sizeof(dp));
int len=strlen(ss+1),ans=0;
dp[0]=1;
for(int i=0;i<=len;i++)if(dp[i]){
int now=1;
for(int j=i+1;j<=len;j++){
int ch=ss[j]-'a';
if(!trie[now][ch])break;
now=trie[now][ch];
if(ed[now])dp[j]=1,ans=max(ans,j);
}
}
printf("%d\n",ans);
} int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)scanf("%s",s+1),insert(s);
for(int i=1;i<=m;i++)scanf("%s",S+1),find(S);
return 0;
}

【洛谷P2292】L语言的更多相关文章

  1. 洛谷 P1910 L国的战斗之间谍

    洛谷 P1910 L国的战斗之间谍 传送门 思路 二维背包模板题 三维肯定会爆掉,所以换二维 代码 #include <bits/stdc++.h> #define N 1111 usin ...

  2. 洛谷 P2292 [HNOI2004] L语言 解题报告

    P2292 [HNOI2004] L语言 题目描述 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章\(T\)是由若干小写字母构成.一个单词 ...

  3. 洛谷P2292 [HNOI2004]L语言

    传送门 建好trie树 当$dp[j]==1$当且仅当存在$dp[k]=1$且$T[k+1,j]==word[i]$ 然后乱搞就行了 //minamoto #include<iostream&g ...

  4. 洛谷 P2292 [HNOI2004]L语言

    题目描述 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章T是由若干小写字母构成.一个单词W也是由若干小写字母构成.一个字典D是若干个单词的 ...

  5. 洛谷 P1910 L国的战斗之间谍(水题日常)

    题目背景 L国即将与I国发动战争!! 题目描述 俗话说的好:“知己知彼,百战不殆”.L国的指挥官想派出间谍前往I国,于是,选人工作就落到了你身上. 你现在有N个人选,每个人都有这样一些数据:A(能得到 ...

  6. 洛谷 P2129 L国的战斗续之多路出击(模拟)

    P2129 L国的战斗续之多路出击 题目背景 广而告之:背景见其他L国的战斗!!大家一起刷 题目描述 这一次,L国决定军队分成n组,分布在各地,若以L国为原点,可以看作在一个直角坐标系内.但是他们都受 ...

  7. 洛谷——P1910 L国的战斗之间谍

    https://www.luogu.org/problem/show?pid=1910#sub 题目背景 L国即将与I国发动战争!! 题目描述 俗话说的好:“知己知彼,百战不殆”.L国的指挥官想派出间 ...

  8. 洛谷 P1913 L国的战斗之伞兵

    P1913 L国的战斗之伞兵 题目背景 L国即将与I国发动战争!! 题目描述 为了在敌国渗透作战,指挥官决定:派出伞兵前往敌国!然而敌国的风十分强烈,能让伞兵在同一高度不停转悠,直到被刮到一个无风区… ...

  9. 洛谷 P1911 L国的战斗之排兵布阵

    P1911 L国的战斗之排兵布阵 题目背景 L国即将与I国发动战争!! 题目描述 L国的指挥官想让他的每一个军营都呈现出国徽形——“L”形(方向无所谓).当然,他的指挥营除外(这叫做个性),他想不出该 ...

随机推荐

  1. 第五周作业,LVM和TCP

    1.磁盘lvm管理,完成下面要求,并写出详细过程: 1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv; ...

  2. Word模板替换

    package com.sisa.auweb.tools.bookmarkprocess; import org.apache.poi.openxml4j.opc.OPCPackage; import ...

  3. ControlTemplate in WPF —— Window

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...

  4. http协议详解1

    一.http协议url组成部分详解:1.协议类型2.ip(服务器地址)3.port(或域名)4.path(请求资源所在地址)5.?(资源地址与参数的分割符合)6.参数(请求参数)7.&(多个参 ...

  5. 阶段3 2.Spring_09.JdbcTemplate的基本使用_2 JdbcTemplate的概述和入门

    先看这张图 1.spring中的JdbcTemplate     JdbcTemplate的作用:         它就是用于和数据库交互的,实现对表的CRUD操作     如何创建该对象:      ...

  6. jquery的then方法

    绿地项目中的代码: $.ajax({ url: `https://openapi.italent.cn/OAuth/Token`, type: 'post', data: `tenant_id=${t ...

  7. Win32 编程 基础

    Win32    程序开发的流程 message based, event driven Win32程序是message based, event driven.也就是说Win32程序的运行是依靠外部 ...

  8. Java编程思想——标准 I / O

    将Syetem.out转换成PrintWriter 标准I/O重定向: 控制台信息量大,滚动快,查看困难 setIn(InputStream) setOut(...) setErr(...) 新I/O ...

  9. Django 中 ModelForm 的使用

    定义 ModelForm 定制 ModelForm Meta 在 Form 中另外定义 Field 值得一提的一些 Field 转化 AutoField BooleanField ForeignKey ...

  10. 【ABAP系列】SAP ABAP OOALV 动态设置单元格可否编辑

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP OOALV 动 ...