L_0_Forever_LF的专栏

一个热爱OI的OIer

Codechef TANDEM

定义形如XXX的串是好的串,在好的串的前提下,若这个串后面的第一个字符和这个串的第一个字符不同,这个串就是有趣的串,否则是无聊的串,求S的所有子串中,有趣的串和无聊的串的个数 枚举XXX中X的长度L,每L个位置设一个关键点,那么一个好的串一定会且仅会经过3个关键点,枚举第一个,计算他和第二个关键...

2018-04-20 21:32:17

阅读数:27

评论数:0

BZOJ3946: 无聊的游戏

将初始字符串和添加的字符串按照添加顺序 逆序 拼成一个大串S,那么一个串可以被表示成S[l1~r1]+S[l2~r2]… 我们维护height[i]=LCP(s[i-1],s[i]),L~R的LCP=min{ height[L+1~R] } 每次在L~R前面添加一个串T时,L+1~R的heig...

2018-03-18 19:44:37

阅读数:72

评论数:0

Codeforces 932G. Palindrome Partition

我能不能扔发链接跑啊qaq.....

2018-03-10 14:59:38

阅读数:80

评论数:0

BZOJ3160: 万径人踪灭

一开始看错题以为位置可以不对称…… 在串S相邻字符间插入#就可以处理偶数回文串了 不连续的回文子序列个数=回文子序列个数-连续的回文子序列个数 连续的可以用Manacher算 对于不连续的,若i是回文中心,i两侧对称的字符个数为c[i],就有2c[i]−12c[i]−12^{c[i]}-1...

2018-03-05 17:02:51

阅读数:47

评论数:0

BZOJ4259: 残缺的字符串

一直在想各种字符串匹配算法… 将’a’视为1,’b’视为2,‘*’视为0 那么A0......AnA0......AnA_0......A_n和Bk.....Bk+n−1Bk.....Bk+n−1B_k.....B_{k+n-1} 匹配的条件就是 ∑nj=0(Aj−Bk+j)2AjBk+j=...

2018-03-05 16:55:25

阅读数:63

评论数:0

BZOJ1125: [POI2008]Poc

我是真的没有任何码力可言qwq splay维护串的hash值 每次更改hash值,在splay上给所有那个值的点打个答案标记 特殊处理交换同一个串code:#include<set> #include<map> #include<deque> #inclu...

2017-12-08 09:42:31

阅读数:139

评论数:0

BZOJ4032: [HEOI2015]最短不公共子串

建出A串B串的SAM第一个询问可以直接暴力在SAM上跑所有子串.. 第二个询问…好像也可以暴力跑所有子串.. 第三个询问,用状态(i,j,t)表示当前在A串的i位置,B串SAM的j节点,子序列长度为t,每次枚举26个字母转移,把新状态塞进堆里 第四个询问,f[i][j]表示当前子序列结尾在A...

2017-10-18 22:17:28

阅读数:118

评论数:0

BZOJ2119: 股市的预测

找有多少个形如ABA的串,B的长度给定 可枚举A的长度L,按L分块,每块内确立一个位置为关键点,那么两端的A都会覆盖且仅覆盖一个关键点 枚举左端被覆盖的关键点i,右端相对应匹配的位置是j=i+L+m,i和j向左,向右分别匹配最长公共后缀和前缀l、r(和L取min防止覆盖其他关键点造成重复) ...

2017-10-18 07:16:26

阅读数:128

评论数:0

BZOJ1100: [POI2007]对称轴osi

一眼感觉是计算几何题…然后不会做…. 结果居然是字符串题….如果我们能将一个多边形表示成一个字符串的话,对称就变成了回文 我们用边长代表这条边,用两条邻边的叉积代表这个点(因为叉积就是有向面积) 然后将这个数字序列复制一份到后面 找所有长度>2*n的回文串 最后答案要/2,因为每个...

2017-09-23 21:00:01

阅读数:184

评论数:0

后缀自动机学习小结

这是第不知道多少次学SAM…感觉以后还要忘赶紧留个笔记..欢迎指出错误SAM有两个东西,一个是trans,一个是parent树 第一个东西的作用,就是如果你从根节点开始,走一个串,如果这个串是原串的子串,就一定能够走到这么一个点,他的parent树里的子树里的right的并集就是这个串在原串出现...

2017-08-19 21:36:22

阅读数:132

评论数:0

BZOJ2803: [Poi2012]Prefixuffix

有个很厉害的性质,推出了这个就可以DP了有了这个DP,就可以枚举找一个最大值了 这题好像需要双hashcode:#include<map> #include<set> #include<deque> #include<queue> #include...

2017-03-06 22:00:06

阅读数:250

评论数:0

BZOJ2795: [Poi2012]A Horrible Poem

一个字符串若被分成k个循环节,每个循环节里每种字母出现次数肯定都是一样的,那么循环节的个数k一定是这段字符串里每种字母出现次数的gcd的约数,然后枚举k,hash判一下#include<set> #include<map> #include<deque> #in...

2017-03-06 13:46:13

阅读数:476

评论数:0

BZOJ3620: 似乎在梦中见过的样子 解题报告

这题一直没想出来,后来发现O(n2)O(n^2)能过…….SA+n2SA+n^2枚举 枚举一个左端点i,处理一下前缀i和每个前缀的height值,然后往右枚举右端点j,判一下height值是不是>k,如果是的话,把不覆盖中间全部区间的所有方案加入答案,注意不同j的答案可能重复,所以先存到一...

2016-10-11 20:45:44

阅读数:424

评论数:0

BZOJ3998: [TJOI2015]弦论 解题报告

Description对于一个给定长度为N的字符串,求它的第K小子串是什么。Input第一行是一个仅由小写英文字母构成的字符串S第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个。T=1则表示不同位置的相同子串算作多个。K的意义如题所述。题解:这里介绍SA的做法(相对SAM会慢一些) ...

2016-10-10 13:47:30

阅读数:335

评论数:0

BZOJ3507: [Cqoi2014]通配符匹配 解题报告

日常吐槽部分可以跳过这题又坑了蒟蒻一下午,表示很不爽(自己弱能怪谁) 看完题想了一会一直觉得是很高级的做法,自己肯定不会了,搜了题解并不能看懂在讲什么,去问大神,Claris表示这不是 贪心+hash 就能搞定的题吗(为什么我连贪心都没想到啊还有怎么hash匹配并不会) 敲完怎么拍都拍不出错,...

2016-10-01 18:09:47

阅读数:1139

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭