题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3214


字符串长度最大不超过$5$直接$HASH$起来

首先在$T$中考虑找到最前的一个包含$A$的子序列,找到最后的一个包含$C$的子序列,直接贪心的确定了$A,C$的位置。

在剩下的区间内$DP$出最合适的$B$的位置。

我们要找到一个区间${[l,r]}$使得$B$是它的子序列,显然应该最小化$r-l$。

令$F[i]$表示$B$中第$i$单词最晚出现的位置。

$g[i]$表示$B$中第$i$单词已经出现过了之后最少要删除多少个单词(答案)。

假设当前在T中的第$i$个单词是B中的第$x$个。

如果$x=1$:${f[1]=1,g[1]=0}$

如果${f[x-1]!=0}$(即出现过了):${f[x]=i,g[x]=g[x-1]+i-f[x-1]-1}$


 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<map>
using namespace std;
#define maxn 100100
#define llg long long
#define inf (llg)1e16
#define yyj(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
llg n,m,ans,sum,g[maxn],f[maxn]; llg lena,lenb,lenc,a[maxn],b[maxn],c[maxn],s[maxn];
vector<llg>p[]; void get_(llg *a,llg &n)
{
llg x=; char ch=getchar();
for (; ch!='\n'; ch=getchar())
if (ch>='a' && ch<='z') x=x*+ch-'a'+; else
if (x){ a[++n]=x; x=; }
if (x) a[++n]=x;
} int main()
{
yyj("ti");
get_(s,n);
get_(a,lena);
get_(b,lenb);
get_(c,lenc);
llg l=,r=n+;
for (llg i=;i<=lena;i++)
{
l++;
while (a[i]!=s[l]) l++,sum++;
}
for (llg i=lenc;i>=;i--)
{
r--;
while (s[r]!=c[i]) r--,sum++;
}
l++; r--;
for (llg i=;i<=lenb;i++) p[b[i]].push_back(i);
for (llg i=;i<=lenb;i++) g[i]=inf;
ans=inf;
for (llg i=l;i<=r;i++)
{
llg w=p[s[i]].size();
for (llg k=w-;k>=;k--)
{
llg x=p[s[i]][k];
if (x==) continue;
if (x==) {f[]=i; g[]=;}
else
{
if (f[x-])
{
f[x]=i; g[x]=g[x-]+i-f[x-]-;
}
}
ans=min(ans,g[lenb]);
}
}
cout<<ans+sum;
return ;
}

【BZOJ】3214: [Zjoi2013]丽洁体的更多相关文章

  1. bzoj 3214: [Zjoi2013]丽洁体

    Description 平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子.这种往往被称为仿 写的题,不单单出现在小学生的考试中,也有时会出现在中考中.许多同学都喜欢做 ...

  2. [BZOJ3214][ZJOI2013]丽洁体(Hash+DP)

    3214: [Zjoi2013]丽洁体 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 906  Solved: 335[Submit][Status] ...

  3. [luogu] P3333 [ZJOI2013]丽洁体(贪心)

    P3333 [ZJOI2013]丽洁体 题目描述 平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子.这种往往被称为仿写的题,不单单出现在小学生的考试中,也有时会出现在 ...

  4. [ZJOI2013]丽洁体

    题目描述 平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子.这种往往被称为仿写的题,不单单出现在小学生的考试中,也有时会出现在中考中.许多同学都喜欢做这种题,因为较其 ...

  5. BZOJ3214 [Zjoi2013]丽洁体

    题意 平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子.这种往往被称为仿写的题,不单单出现在小学生的考试中,也有时会出现在中考中.许多同学都喜欢做这种题,因为较其它题 ...

  6. 并不对劲的bzoj3214:p3333:[ZJOI2013]丽洁体

    题目大意 有三个由若干个单词组成的字符串\(T,A,B,C(|T|,|A|,|B|,|C|\leq 5*10^4,单词长度\leq5,每个单词出现次数\leq500)\) 求从\(T\)中至少删去多少 ...

  7. [ZJOI 2013]丽洁体

    Description 题库链接 给出四个字符串 \(T,A,B,C\) ,问你至少在 \(T\) 串中删去几个单词能使得 \(T\) 串变为 \(A?B?C\) 的形式,其中 \(?\) 表示任意多 ...

  8. BZOJ 3110: [Zjoi2013]K大数查询 [树套树]

    3110: [Zjoi2013]K大数查询 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 6050  Solved: 2007[Submit][Sta ...

  9. 树套树专题——bzoj 3110: [Zjoi2013] K大数查询 &amp; 3236 [Ahoi2013] 作业 题解

    [原题1] 3110: [Zjoi2013]K大数查询 Time Limit: 20 Sec  Memory Limit: 512 MB Submit: 978  Solved: 476 Descri ...

随机推荐

  1. 75.Java异常处理机制-手动抛出异常

    package testDate; import java.io.File; import java.io.FileNotFoundException; public class TestReadFi ...

  2. HDU 1207 汉诺塔II (递推)

    经典的汉诺塔问题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往上按大小顺序摞着64片黄金圆盘.上 ...

  3. [转载]decode()函数简介

    今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即 ...

  4. python opencv 检测特定颜色

    import cv2 import numpy as np cap = cv2.VideoCapture(0) # set blue thresh 设置HSV中蓝色.天蓝色范围 lower_blue ...

  5. PyQt5-多窗口数据传输

    #窗口之间数据传递(通过属性方式) from PyQt5.QtWidgets import QDialogButtonBox, QDateTimeEdit,QDialog,QComboBox,QTab ...

  6. CentOS7下部署Django项目详细操作步骤

    严格按下面步骤 一.更新系统软件包 yum update -y 二.安装软件管理包和可能使用的依赖 yum -y groupinstall "Development tools" ...

  7. Percona Server 5.6 安装TokuDB

    系统:Red Hat Enterprise Linux Server release 6.3 (Santiago) 数据库:Percona-Server-5.6.29-rel76.2-Linux.x8 ...

  8. php 查找字符串里面中文字符第一次出现的位置,并插入字符串

    //查找字符串里面中文字符第一次出现的位置,并插入字符串 function find_first_chinese_insert($str,$insert_str){ $count = mb_strle ...

  9. mysql查询INFORMATION_SCHEMA表很慢的性能优化

    最近发现,我们有些环境的tomcat应用启动非常缓慢,大部分在3-5分钟,有个测试环境更加阶段,要十几分钟才能启动完成.经过仔细分析,是一个查询INFORMATION_SCHEMA库中数据字典信息的查 ...

  10. 让InstallShield 2015 Limited Edition for Visual Studio 2015生成的setup.exe双击时以管理员权限运行

    转载:http://blog.csdn.net/zztoll/article/details/52096700 如题,如何让InstallShield 2015 Limited Edition for ...