[ZJOI2013]丽洁体
题目描述
平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子。这种往往被称为仿写的题,不单单出现在小学生的考试中,也有时会出现在中考中。许多同学都喜欢做这种题,因为较其它题显得有趣。仿写的句子往往具有“A__B__C”的形式,其中A,B,C是给定的由一个或多个单词组成的短句,空的部分需要学生填写。当然,考试的时候空在那里也是可以的。例如,“其实天不暗阴云终要散,其实 ,其实 ,其实路不远一切会如愿,艰难困苦的日子里我为你祈祷,请你保重每一天”。再比如,“见了大海的汹涌,没见过大山的巍峨,真是遗憾;见了大山的巍峨,没见过 ,还是遗憾。出发吧,永远出发。 ,人有不老的心情。”
由于现在是网络时代,我们不再只能仿写命题人命的题,我们可以仿写网上各种句子和段落。2011年3月26日,某人在博客上发布了的消息就惹来了很多人的仿写。
很难过吧。。。考得完爆了。。。
。。。。。。其实也没什么可以说的。。。都是蒟蒻的借口罢了。。。
。。。自己果然还只是半吊子水平呢。。。。
。。。祝大家都能进省队。。。其实只要不要有遗憾就好了呢。。。
虽然我很遗憾或许不能走下去了。。。。。
886
在网络上广泛流传的仿写,因为在某些地方有独到之处,大都被命名为“某某体”。打开人人,刷新微博,你也能发现这样和那样的体,比如,对不起体,**说明他爱你体等等。金先生注意到了这一现象,他敏锐地认为这是一个很有价值的研究课题,于是就其展开研究,打算发一篇paper。由于在网上发消息,人们有了更大的灵活度,人们有时因为表达的需要,还往原本固定的A, B, C中添加一些修饰的词语。这就给辨别一个句子或段落是否是另一个句子或段落的仿写增加了困难。
金先生现在研究一种形如“A*B*C”的体作品,其中A, B, C分别是某个由若干单词组成的短句,*代表0个或多个单词。他在网上找了大量的体作品,不过很多体作品不太合乎原作者的格式,也就是相当于在正规的体作品中插入了0个或多个单词。
由于数据量太大,金先生无法一个一个看过去,于是想请你帮忙,去掉尽量少的单词,使它成为指定的体。
输入输出格式
输入格式:
包含4行。
第一行是某个也许不规范的体作品T,
接下来三行分别代表A, B, C。
输出格式:
仅一行,包含一个数,即最少的去除单词数。
输入输出样例
复制
xiang yao yi zhi ai zhe mou wu de hua yi yao guai zhi si lai shuo tai chang le xiang yao shi xian yi qie meng xiang de hua yi ren lei zhi sheng lai shuo tai duan le
yao
tai chang le yao
tai duan le
2
说明
【样例说明】
在上述样例中,不规范的体作品为:“想要一直爱着某物的话,以妖怪之死来说太长了;想要实现一切梦想的话,以人类之生来说太短了”。
规范的体形如:“要*太长了要*太短了”。
修改后的规范的体为:“要一直爱着某物的话,以妖怪之死来说太长了;要实现一切梦想的话,以人类之生来说太短了”。
【数据规模与约定】
对于20%的数据,1≤|T|, |A|, |B|, |C|≤10。 对于40%的数据,1≤|T|, |A|, |B|, |C|≤100。 对于70%的数据,1≤|T|, |A|, |B|, |C|≤1000。 对于100%的数据,1≤|T|, |A|, |B|, |C|≤50000;所有单词长度不超过5,出现次数不超过500;数据保证答案总存在。
先处理出A和C的,从前往后或从后往前扫一下
然后对于B
我们设f[i]表示B串中第i位匹配在T串中最晚在第几位
g[i]表示最小代价
根据贪心,i要与i-1位尽可能接近
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
using namespace std;
char s[];
int T[],a[],b[],c[],sum,ans;
int f[],g[];
vector<int>Q[];
void init(int *p)
{int i,j,x;
char ch=getchar();
int len=;
while (ch!='\n')
{
s[++len]=ch;
ch=getchar();
}
for (i=;i<=len;i=j+)
{
j=i;x=;
while (j<=len&&s[j]>='a'&&s[j]<='z') x=x*+s[j]-'a'+,j++;
p[++p[]]=x;
}
}
int main()
{int i,j;
init(T);init(a);init(b);init(c);
int l=,r=T[];
int x=;
while (x<=a[])
{
while (l<=T[]&&a[x]!=T[l]) l++,sum++;
x++;l++;
}
x=c[];
while (x>=)
{
while (r>=&&c[x]!=T[r]) r--,sum++;
x--;r--;
}
for (i=;i<=b[];i++)
Q[b[i]].push_back(i);
memset(g,/,sizeof(g));
ans=g[];
for (i=l;i<=r;i++)
{
for (j=Q[T[i]].size()-;j>=;j--)
{
int x=Q[T[i]][j];
if (x==) f[x]=i,g[x]=;
else if (f[x-]) f[x]=i,g[x]=g[x-]+i-f[x-]-;
}
ans=min(ans,g[b[]]);
}
cout<<ans+sum;
}
[ZJOI2013]丽洁体的更多相关文章
- [BZOJ3214][ZJOI2013]丽洁体(Hash+DP)
3214: [Zjoi2013]丽洁体 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 906 Solved: 335[Submit][Status] ...
- [luogu] P3333 [ZJOI2013]丽洁体(贪心)
P3333 [ZJOI2013]丽洁体 题目描述 平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子.这种往往被称为仿写的题,不单单出现在小学生的考试中,也有时会出现在 ...
- bzoj 3214: [Zjoi2013]丽洁体
Description 平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子.这种往往被称为仿 写的题,不单单出现在小学生的考试中,也有时会出现在中考中.许多同学都喜欢做 ...
- BZOJ3214 [Zjoi2013]丽洁体
题意 平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子.这种往往被称为仿写的题,不单单出现在小学生的考试中,也有时会出现在中考中.许多同学都喜欢做这种题,因为较其它题 ...
- 【BZOJ】3214: [Zjoi2013]丽洁体
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3214 字符串长度最大不超过$5$直接$HASH$起来 首先在$T$中考虑找到最前的一个包含 ...
- 并不对劲的bzoj3214:p3333:[ZJOI2013]丽洁体
题目大意 有三个由若干个单词组成的字符串\(T,A,B,C(|T|,|A|,|B|,|C|\leq 5*10^4,单词长度\leq5,每个单词出现次数\leq500)\) 求从\(T\)中至少删去多少 ...
- [ZJOI 2013]丽洁体
Description 题库链接 给出四个字符串 \(T,A,B,C\) ,问你至少在 \(T\) 串中删去几个单词能使得 \(T\) 串变为 \(A?B?C\) 的形式,其中 \(?\) 表示任意多 ...
- AHOI2018训练日程(3.10~4.12)
(总计:共90题) 3.10~3.16:17题 3.17~3.23:6题 3.24~3.30:17题 3.31~4.6:21题 4.7~4.12:29题 ZJOI&&FJOI(6题) ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
随机推荐
- 201621123040《Java程序设计》第12周学习总结
1.本周学习总结 2.面向系统综合设计-图书馆管理系统或购物车 2.1简述如何使用流与文件改造你的系统.文件中数据的格式如何? 将书目信息写入文件,查阅图书馆书目信息时,实现文件的读取 2.2简述系统 ...
- js 点击 返回顶部 动画
附上效果图 触发前 触发后 HTML代码: CSS代码 JS代码 由于复制文本太丑了 所以直接放的图片 但是我在评论区把js代码又复制了一边 以便你们使用
- OO第一次阶段性总结
经过三次作业的历练之后终于来到了写博客这一周.回顾开学来的这一个月,令我印象最深刻也是最累的一门课就是OO了.虽然上学期学过一部分Java,但这学期开学就来的OO作业还是让我在第二周就开始熬夜了.不过 ...
- 06_Python的数据类型3元组,集合和字典_Python编程之路
上一节跟大家讲了Python的列表,当然不是完整的讲完,后续我们还会提到,这一节我们还是来讲Python的数据类型 首先要讲到的就是元组 元组其实拥有列表的一些特性,可以存储不同类型的值,但在某些方面 ...
- Python设计TFTP客户端
#coding=utf-8 from socket import * from threading import Thread import struct def recvData(fileName, ...
- dubbo debug过程中一个有趣的问题
最近在debug dubbo代码过程中遇到的很有趣的问题 我们都知道dubbo ReferenceBean是消费者的spring bean包装,为了查一个consumer端的问题,在Reference ...
- Java基础中一些容易被忽视的语法小细节总结
一:语法细节 1. Java中的命名规则: package:统一使用小写字母 class:首字母大写,使用驼峰标识 method:首字母小写,使用驼峰标识 field:首字母小写,使用驼峰标识 sta ...
- python Django知识点总结
python Django知识点总结 一.Django创建项目: CMD 终端:Django_admin startproject sitename(文件名) 其他常用命令: 其他常用命令: 通过类创 ...
- 04、NetCore2.0下Web应用之Startup源码解析
04.NetCore2.0Web应用之Startup源码解析 通过分析Asp.Net Core 2.0的Startup部分源码,来理解插件框架的运行机制,以及掌握Startup注册的最优姿势. - ...
- [转]使用awk批量杀进程的命令
1. ps -ef|grep aaa|grep -v grep 这是大家很熟悉的命令,这里就不再多说,就是从当前系统运行的进程的进程名中包含aaa关键字的进程. 2. 后面部分就是awk命令了,一般a ...