
ACM_字符串
文章平均质量分 76
逍遥丶綦
这个作者很懒,什么都没留下…
展开
-
模拟 hdu5414 CRB and String
传送门:点击打开链接题意:定义一次操作,可以在任意一个字符a后面插入一个不等于a字符的任意字符。问是否能将s串变成t串思路:感觉这种构造和模拟的题目做少了Orz首先我们可以发现,如果是开头,第一个字符必须要一样,设第一个字符为f那么前面连续的如果两个都等于f,就把指针都后移,直到两个中的某一个指针到末了,或者两者不再相等,才跳出循环然后判断是否是指针到末端了,对于i和j到末端的原创 2015-08-22 17:25:32 · 1029 阅读 · 0 评论 -
字符串替换 hihoCoder1082 然而沼跃鱼早就看穿了一切
一直因为C++里面没有现成的替换函数而烦恼,只怪自己太懒懒的写借这题写好这个函数,,以后直接用就好了#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int MX = 1原创 2015-08-13 22:41:48 · 1346 阅读 · 0 评论 -
manacher hihoCoder1032 最长回文子串
竟然可以做到O(n)的复杂度求最长回文,,也是给跪了。下面这个人把manacher讲的非常好,,可以看看http://blog.youkuaiyun.com/xingyeyongheng/article/details/9310555我就照着他的代码敲了一遍贴了个模板。。#include#include#include#include#include#include#inclu原创 2015-08-13 22:30:36 · 1056 阅读 · 0 评论 -
lcp+dp Codeforces611D New Year and Ancient Prophecy
传送门:点击打开链接题意:长为n的只有数字组成的字符串(n思路:最难的地方,就是如何去快速判断两个数字的大小谁大谁小呢?我们先来讲下最长公共前缀lcp的定义。如果有串A和串B,lcp[i][j]表示的是串A从原串第i位置开始,串B从原串第j位置开始,那么从这两个位置开始的有多少个字符相等那么如何来求lcp呢,方程很简单,看了都能懂lcp[i][j]=lcp[i+1][j+1]+原创 2016-01-01 17:58:55 · 1097 阅读 · 0 评论 -
AC自动机+base64解码 zoj3430 Detect the Virus
传送门:点击打开链接题意:告诉你邮件内容,告诉你病毒,问内容里有多少种类的病毒。一听就知道是裸AC自动机,,但是有两个很恶心的地方。。首先是base64解码,还是第一次手撸这个也是麻烦..另外一个很容易弄错的地方就是,有的语言字节是从0~255,其实C语言的字节是从0~127是正数,最高位表示的是负数了...所以说,base64解码后,可能有的字节是大于127的,所以我们不能用char类型来存原创 2015-10-23 12:01:30 · 853 阅读 · 0 评论 -
字符串hash+线段树 Codeforces580E Kefa and Watch
传送门:点击打开链接题意:给你一个原串,只有0和9组成。现在有两种操作操作1,区间修改,把[L,R]的数字都改成d操作2,询问区间[L,R]中是否满足si = si + x for all i from 1 to |s| - x.思路:虽然本身会字符串hash,但是没想到还能这样玩。。hash的思路和普通的是一样的,每一位中间乘以某个数字。。如果担心最后的答案,可以对两个大原创 2015-10-17 19:55:28 · 1094 阅读 · 1 评论 -
后缀平衡树 nbut1653 String in the tree
传送门:点击打开链接题意:告诉你一棵树,每个节点有一个字母,然后要求分别输出每个节点到根节点这条路径上的不重复的子串个数。思路:因为是树形结构,我们就没办法用后缀数组搞了,必须要想办法能动态维护就好啦我们这里用后缀平衡树来做到动态维护SA首先我们要明确这道题的思路,每增加一个节点,根据后缀数组的知识我们知道,会多增加l-max(H[i],H[i+1])个子串,H表示高度数组,也就是原创 2016-02-12 17:18:50 · 1503 阅读 · 0 评论