P4824 [USACO15FEB]Censoring (Silver) 审查(银)
一个串的匹配肯定考虑KMP
那就暴力KMP
记录一下到每个字符时匹配的位置
找到一个符合的串就标记然后暴力回跳
感觉好像太暴力了...
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=1e6+;
char ch[N],a[N];
int f[N],match[N];
bool pd[N];
int main()
{
scanf("%s",ch); scanf("%s",a);
int len=strlen(ch),la=strlen(a),k=;
for(int i=;i<la;i++)
{
while(k&&a[i]!=a[k]) k=f[k];
f[i+]= a[i]==a[k] ? ++k : ;
}
//以下为暴力匹配
int i=; k=;
while(i<len)
{
while(k&&a[k]!=ch[i]) k=f[k];
if(a[k]==ch[i]) k++; if(k==la)//找到匹配就暴力回跳
{
int j=;
while(j<=la)
{
if(pd[i])
{
i--;
continue;
}
pd[i]=,i--;
j++;
}
while(pd[i]) i--;//最后还要跳一波
k=match[i];
}
match[i]=k;
i++;
while(pd[i]) i++;
}
for(int i=;i<len;i++)
{
if(pd[i]) continue;
cout<<ch[i];
}
return ;
}
膜一下CRK大佬,用的是AC自动机%%%
P4824 [USACO15FEB]Censoring (Silver) 审查(银)的更多相关文章
- P4824 [USACO15FEB]Censoring (Silver) 审查(银)&&P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
P3121 [USACO15FEB]审查(黄金)Censoring (Gold) (银的正解是KMP) AC自动机+栈 多字符串匹配--->AC自动机 删除单词的特性--->栈 所以我们先 ...
- 「USACO15FEB」Censoring (Silver) 审查(银) 解题报告
题面 就是让你--在字符串A中,如果字符串B是A的子串,那么就删除在A中第一个出现的B,然后拼接在一起,一直重复上述步骤直到B不再是A的子串 |A|\(\le 10^6\) 思路: KMP+栈 1.由 ...
- 2021.11.09 P4824 [USACO15FEB]Censoring S与P3121 [USACO15FEB]Censoring G(KMP&&AC自动机)
2021.11.09 P4824 [USACO15FEB]Censoring S与P3121 [USACO15FEB]Censoring G(KMP&&AC自动机) https://w ...
- [USACO15FEB]Censoring (Silver)
WA了一万次.... 然后发现多输出了一个空格 我#$%^& 启示我们输出字符的时候应该输出ASCII码看一下.... 然后本题可以用烤馍片算法,每次匹配完以后看看当前最后一位的nxt数组的值 ...
- 关于KMP的一点思考
关于KMP的一点思考 KMP的\(next\)数组的性质很精妙,有必要开一个坑学习一下 Part 1 啥是next \(next[i]\)表示对于\(pre_i\)这个字符串,这个抠出来的字符串本身后 ...
- CET4词汇
abandon vt.丢弃:放弃,抛弃 ability n.能力:能耐,本领 abnormal a.不正常的:变态的 aboard ad.在船(车)上:上船 abroad ad.(在)国外:到处 ab ...
- vim-airline的theme
仓库位置: https://github.com/vim-airline/vim-airline-themes 这些内置的这些主题,可以直接使用,方法是在.vimrc中写 let g:airline_ ...
- 如何更换vim-airline的theme
仓库位置: 点我直达 (主题以前是和airline在同个仓库的,现在独立出来了) 这些内置的这些主题,可以直接使用,方法是在 “.vimrc”文件中写 let g:airline_theme=&quo ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
随机推荐
- javascript的概述
JavaScript是怎么诞生的???刚开始的是为了验证表单而开发出来的. 什么是JavaScript???a.面向对象的编程语言b.解释性的编程语言(说白了就是不用编译的一种语言)c.脚本语言(说白 ...
- SpringMVC_05 利用spring框架来处理异常
待更新... 2017年5月13日22:46:52 1 用spring框架来处理异常 将异常抛给spring框架,让spring框架来处理 异常:这样就不需要程序员去捕获异常啦 2 方法一:配置简单异 ...
- WINFORM 开发模式,窗体回到默认样式方法。
软件分为3类 客户端 网站应用 app WINFORM 主要用来只做客户端应用程序.C/S 客户端程序很重要的特点:可以操作用户电脑上的文件,执行在客户端上,电脑的配置越高执行就越流畅. 在p ...
- 612D The Union of k-Segments
传送门 题目大意 给定n个区间,问你被覆盖至少k次的区间(两端连续区间可以合并)最少有多少个,并输出. 分析 大水题呀QwQ,只需要将每个点的位置及它是左端点还是右端点这两个信息存起来然后进行一些简单 ...
- 什么是MTU,如何检测和设置路由器MTU值
最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位).最大传输单元这个参数通常与通信接口有关(网络接口卡.串口 ...
- Bulma 源码结构
源码基于 Bulma 0.4.0 版本. 一.入口文件 bulma.sass bulma.sass 是 Bulma 使用 SASS 编译的入口文件. sass bulma.sass css/bulma ...
- Siemens3508手机AT指令发送短信的实验
凡夫 最近利用Siemens3508旧手机做了AT指令发送短信的实验.有人可能认为我费那么大劲折腾累不累,告诉你这可是废物再利用,可以利用旧手机里的GSM/GPRS模块做无线远程多点分布数据采集.监控 ...
- UCOSIII优先级
优先级 0:中断服务管理任务 OS_IntQTask() 优先级 1:时钟节拍任务 OS_TickTask() 滴答定时器任务 优先级 2:定时任务 OS ...
- postgre-sql语法
//客户端查询 public void pgsearchclient(HttpContext context, string starttime, string endtime, int page, ...
- c# 省市区联动
http://www.matrixkey.com.cn/blog/article.asp?id=427 建议楼主去这里看看:http://pagetalks.com/2010/03/22/jquery ...