首页 > 其他分享 >Censoring S(板子)

Censoring S(板子)

时间:2024-05-03 21:22:05浏览次数:12  
标签:int 样例 板子 length 字符串 Censoring

题目描述

原题来自:USACO 2015 Feb. Silver

给出两个字符串 ,每次从前往后找到 的一个子串 并将其删除,空缺位依次向前补齐,重复上述操作多次,直到 串中不含 串。输出最终的 串。

输入格式

第一行包含一个字符串 ,第二行包含一个字符串

样例输入

whatthemomooofun
moo

样例输出

whatthefun

解析

\(KMP\) ,类似板子,字符串拼接,细节不少,代码可以多看看。

#include<bits/stdc++.h>
using namespace std;
const int N = 1e7+6;
string s,t;
int p[N],n,m;

int main()
{
	cin>>s>>t;
	s=t+'#'+s;
	n=s.length(); m=t.length();
	for(int i=1;i<n;i++)
	{
		int j=p[i-1];
		while(j&&s[i]!=s[j]) j=p[j-1];
		p[i]=j+(s[i]==s[j]);
		if(p[i]==m&&i!=m-1) s.erase(i-m+1,m),i-=m;
	}
	s.erase(0,m+1);
	cout<<s;
	return 0;
}

标签:int,样例,板子,length,字符串,Censoring
From: https://www.cnblogs.com/ppllxx-9G/p/18170451

相关文章

  • 【计算几何】二维基础 (丑陋的)板子
    符号判断与大小比较intsgn(intx){ if(fabs(x)<eps)return0; elseif(x>=eps)return1; elsereturn-1;}//实数的向上取整函数int_ceil(constdouble&x){longlongk=ceil(x);while(k<x)k++;while(k>x+1)k--;returnk;}点structPoint......
  • 分块(板子)
    “优雅的暴力”——分块分块是一种暴力的优化,虽然效率比线段树、树状数组等数据结构低的多\((N+Q)\sqrt{N}\),但是更加灵活。分块的思想是把整个区间分成几个部分,对于要处理的区间包括两个部分“整块”,和区间边缘的“零散块”,“零散块”直接暴力,“整块”进行整体操作即可。......
  • 板子速查
    基础二分答案intfind1(intx){intl=1,r=n;while(l<r){intmid=(l+r)>>1;if(check(mid))l=mid+1;elser=mid;}returnl;}//l:第一个不满足check()性质的数。intfind2(intx){intl=1,r......
  • 分块板子
    预处理voidinit(){clean();scanf("%lld",&n);for(i=1;i<=n;i++)scanf("%lld",&a[i]);sq=sqrt(n);for(i=1;i<=sq;i++){st[i]=n/sq*(i-1)+1;ed[i]=n/sq*i;}ed[sq]=n;for(i=1;i<......
  • 数论板子
    线性筛求素数intprime[MAXN];//保存素数boolis_not_prime[MAXN]={1,1};//0和1都不是素数//筛选n以内的所有素数voidxxs(intn){for(inti=2;i<=n;++i){if(!is_not_prime[i]){//如果i是素数prime[++prime[0]]=i;......
  • 线段树的板子题
    线段树支持单点修改,单点查询,区间修改,区间查询pushup:子节点更新父节点pushdown:把懒标记向下传build:初始化一颗树modify:修改一个区间query:查询一个区间线段树的完整代码AcWing243.一个简单的整数问题2链接:https://www.acwing.com/problem/content/244/#include<cstdio>......
  • 主席树的板子题
    题解方法1.可持久化线段树(主席树),代码有详细注释做法:先把值离散化在数值上建立线段树,维护每个数值区间中一共有多少个数问题1:如何求整体第K小数?答:二分,如果0~mid中有cnt数,cnt>=k,递归左边,如果cnt<k,递归右边,找k−cnt小的数。时间复杂的logn问题2:求【1,R】这个区间的第K......
  • JAVA 板子
    代码片段1importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importjava.io.PrintWriter;importjava.io.StreamTokenizer;publicclassMain{stati......
  • Splay 板子
    普通:bool_Start;#include<bits/stdc++.h>usingnamespacestd;#defineilinline#defineTptemplate<typenameT>#defineTstemplate<typenameT,typename..._T>Tpilvoidread(T&x){ x=0;boolf=0;charc=getchar(); for(;!isdigit(c)......
  • 字符串哈希板子
    #include<iostream>#include<cstring>#defineMAX_SIZE100usingnamespacestd;classStringHash{public:intsize;char*array;char*array_forward;unsignedlonglong*pre_base;unsignedlonglong*hash_array;uns......