字符串
文章平均质量分 61
INCINCIBLE
这个作者很懒,什么都没留下…
展开
-
KMP——字串清除
Description我们定义字符串A是字符串B的子串当且仅当我们能在B串中找到A串。现在给你一个字符串A,和另外一个字符串B,要你每次从B串中从左至右找第一个A串,并从B串中删除它,直到A串不为B串的子串,问你需要进行几次删除操作。 Input输入文件共2行,第一行一个字符串A(长度小于256),第二行一个字符串B。 30%的数据是随机生成的; 50%的数据满足输入文件大原创 2016-03-31 15:04:42 · 585 阅读 · 0 评论 -
HN2015集训 月宫的符卡序列
可能看到这个题有的人第一反应是回文自动机之类的,但是注意到这个题是跟回文串中心相关,而回文自动机则是与回文串末尾相关,可能无法处理。 那么与回文串中心相关的算法还有什么,manacher(马拉车)。 学过的同学都知道吗,本质不同的回文串最多n个,也就是拉车到i的时候,本来已有f[i]所表示的回文串是之前已经出现过的,暴力新扩展出来的才是新出现的回文串。 那么就构造出了一套拓扑序,最后反拓扑序异原创 2017-05-26 14:34:31 · 673 阅读 · 0 评论 -
Codeforces, 587F: Duff is Mad
Duff is Mad给出nn个字符串S1,S2......SnS_1,S_2......S_n ,qq 个询问。 每次询问给定l,r,kl,r,k, 要求输出 ∑ri=loccur(Si,Sk)\sum_{i=l}^{r}occur(S_i,S_k),. 其中occur(S,T)occur(S,T)表示SS在TT中出现的次数。 n,q,∑ni=1|Si|≤105n,q ,\sum _{i=原创 2017-05-04 13:45:43 · 722 阅读 · 0 评论 -
后缀自动机+DP BZOJ 3238 差异
传送门:BZOJ 3238 差异 分析: 其实题目就是要求任意两个后缀T[i]和T[j] (i#include<cstdio>#include<iostream>#include<cstdlib>#include<cmath>#include<cstring>#define LL long longusing namespace std;const int maxn=1000000原创 2017-02-09 21:42:31 · 485 阅读 · 0 评论 -
后缀自动机+DP NOI2015 Day 2 品酒大会
很显然可以用后缀自动机来搞。 将输入的字符串翻转,构造SAM。 对每一个节点x,求出: (1)子树中 满足LCA(u,v)==x 的点对 的对数 (2)子树中 满足LCA(u,v)==x 的点对 的美味值乘积最大值。 注意最大值有可能由两个最小的负数相乘得到,所以最大、最小值都要记。 最后的答案为ans1[],ans2[],如果节点x表示的最长子串长度为Max, 那么x的答案可原创 2017-02-09 22:59:29 · 550 阅读 · 0 评论 -
回文树——BZOJ 2160: 拉拉队排练
2160: 拉拉队排练Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 933 Solved: 365[Submit][Status][Discuss]Description艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了。拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛。所以作为拉拉队队长的楚雨荨原创 2016-07-18 22:04:36 · 543 阅读 · 0 评论 -
回文树 BZOJ 2565 最长双回文串
2565: 最长双回文串Description顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。Input一行由小写英文字母组成的字符串S。Output原创 2016-06-08 18:39:07 · 598 阅读 · 0 评论 -
2016.4. 半期 最小表示法 sequence
nkoj 2513Description给定一个序列{A1,A2,...,An},保证A1>A2, ..., An。 你要把它分成三段,每段单独翻转后按照原来的顺序组成新的序列,使新的序列字典序最小。Input第一行一个正整数n。 (n ≤ 200000) 接下来n行每行一个数,第i+1行的数为所给序列的Ai。Output共n行,每行一个数。第i行为操作后新序列的第原创 2016-04-21 16:00:24 · 327 阅读 · 0 评论 -
2016.4 半期 射箭馆,爱打怪兽的何老板-----KMP
Problem 3射箭馆(arrow.cpp/c/pas)题目描述 何老板是一名箭术爱好者,今天他又到箭馆里去玩射箭游戏。 游戏中会出现m(编号1到m)只怪兽,怪兽按编号1到m依次出现。每个怪兽的颜色和价值可能不同。若当前出现的是一只颜色为x的怪兽,何老板须用一只颜色同为x的箭才能杀死这只怪兽。 游戏中,何老板有n(编号1到n)原创 2016-04-21 16:11:49 · 809 阅读 · 0 评论 -
奶牛xor--nkoi1873
Cow XOR奶牛异或Time Limit:10000MS Memory Limit:65536KTotal Submit:106 Accepted:48 Case Time Limit:500MS Description农民约翰在喂奶牛的时候被另一个问题卡住了。他的所有N(1 <= N <= 100,000)个奶牛在他面前排成一行(按序号1..N的顺序),按照它们的社会原创 2016-05-01 23:13:27 · 920 阅读 · 0 评论 -
KMP算法——South Central USA 2006 蓝色牛仔裤
nkoj 1479DescriptionIBM和“国家地理”杂志共同研究的一个名为“蓝色牛仔裤”的项目,就是分析成千上万个捐赠的DNA,以便找出世界的人口是怎样构成和分布的。 作为IBM的一名研究员,你的任务就是写一个程序来研究不同DNA片段间的联系。 一个DNA序列由A、T、G、C四个字母来表示,比如“TAGACC”是一种长度为6的DNA序列。 告诉你若干条DNA序列,请原创 2016-03-26 13:42:23 · 528 阅读 · 0 评论 -
kmp--nkoj2201周期
【KMP或后缀数组】周期Description对于字符串S(N个小写字母构成)的每个前缀,我们想知道该前缀是否会周期性的出现(就像循环节)。也就是对于每一个i(2 1,如果存在)使得S的长度为i的前缀可以被写成Ak的形式,也就是连续k个字符串A。Input输入包含若干组测试数据,对于每组测试数据: 第一行,一个整数N,表示字符串S (2 第二行,一个字符串S 输入以单独原创 2016-03-24 17:20:47 · 407 阅读 · 0 评论 -
kmp--nkoj2202字符串乘方
【KMP或后缀数组】字符串乘方Description给你两个字符串a和b,我们定义a*b表示他们相连接。例如a="abc",b="def",a*b="abcdef"。 如果字符串是重复出现的,我们可以用乘方来表示:a0表示空字符串,an表示n个字符串a相连接。Input有多组测试数据,对于每组测试数据: 有若干行,每行一个字符串(1输入的最后一行是一个"."Outp原创 2016-03-24 16:52:27 · 1257 阅读 · 0 评论 -
字符串的最小表示--nkoj2973质检员
质检员Description何老板的工厂生产一种宝石项链,该项链由n颗宝石构成。构成项链的宝石有10种,编号0到9。生产出的项链有些是不合格的,作为质检员,你的工作是把不合格的产品找出来。何老板给你一个合格项链的样品和m(编号1到m)条刚生产出的项链,你要把不合格的项链找出来,并输出它的编号。Input第一行,两个整数n和m。 第二行,n个空格间隔的整数,表示样品项链,每个整数原创 2016-03-24 16:10:25 · 418 阅读 · 0 评论 -
Trie——电话簿
nkoj 1931Description何老板的手机很先进,当要拨打一个号码时,你需敲出该号码的前面几个数字,手机就会自动找出以该数字为前缀的所有号码。 比如下列电话薄: TOM:1388 JIM:13885599999 LEE:13812345678 TEC:0236588888 如果何老板敲了138三个数字,手机屏幕上就会显示TOM、JIM和LEE的名字。很是方原创 2016-04-01 19:50:41 · 690 阅读 · 0 评论 -
[ZJOI2015] 诸神眷顾的幻想乡
P3256【ZJOI2015 Day1】诸神眷顾的幻想乡时间限制 : 20000 MS 空间限制 : 524288 KB问题描述 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝生日。 粉丝们非常热情,自发组织表演了一原创 2017-04-26 00:09:07 · 638 阅读 · 0 评论