机房测试16:字符串专题(AC自动机+dp+kmp)
摘要:T1: 一只青蛙失去了荷叶的保护。 它十分迷茫,于是决定改变自己的基因,让自己成为一个受庇护的不会老去的物种。众所周知,青蛙的基因是一段有遗传效应 DNA 片段,我们认为这个片段仅由“A”,“ T”,“C”,“ G”组成,为了方便,我们只需考虑DNA的一条链。 这只青蛙十分有经验,它知道这条链长度为
阅读全文
posted @
2019-10-21 11:44
rua-rua-rua
阅读(185)
推荐(0)
机房测试6:括号序列(hash+栈 )
摘要:题目: 这个题面是真的有毒,就不发题面了。 题意是:给一串字符,求它的子序列里面有多少个满足括号序列,且相互匹配的左括号和右括号必须是同一个字符。 分析: 30分暴力: 枚举每一个子序列,扫一遍判断是否满足括号序列。 判断方法:遇到相同的就弹出,最后栈为空。 O(n^3) 60分暴力: 基于30分做
阅读全文
posted @
2019-10-06 17:28
rua-rua-rua
阅读(170)
推荐(0)
机房测试1:big(贪心+Trie树)
摘要:题目: 分析: 考虑最暴力的办法:枚举选哪个数,枚举对手在哪个时间变化,然后统计答案。 对于异或这一类问题,考虑区间异或可以抵消重复区间,维护一个前缀异或和:pre[i]表示1~i的异或和,suf[i]表示i~n的异或和。 将对手的式子化简,2*x即将x向左移一位,/( 2^n )为向右移n位,+2
阅读全文
posted @
2019-10-03 19:08
rua-rua-rua
阅读(213)
推荐(0)
后缀自动机(模板+例题)
摘要:存个模板 一道例题:后缀自动机求最小表示法 思路:利用性质:后缀自动机可以表示出一个串的所有子串。先把原串复制一遍,每次贪心地走最小的一个字符,如果没有,再向后for,一直走满len个 注意:len存的是后缀的长度,所以最终答案应该是nd[now].len-len+1 (要求的是最小表示的起始位置)
阅读全文
posted @
2019-07-16 21:01
rua-rua-rua
阅读(334)
推荐(0)
最小表示法(模板)poj1059
摘要:注意坑点 1.当求最小表示从哪一个字符开始时,一定要考虑有多种情况输出较小的答案!!那么i,j就不能单纯的交替跳了,要把j定成较大的一个,答案在i里面找 2.在k扩张时,一定要<len,否则会超出范围,而不会break掉 3.break的作用:处理由一个字符串组成的串,或循环节长度为2的串
阅读全文
posted @
2019-07-16 20:59
rua-rua-rua
阅读(199)
推荐(0)
KMP poj3942
摘要:/* 题意: 有一个S串和一个T串,长度均小于1,000,000, 设当前串为U串,然后从前往后枚举S串一个字符一个字符往U串里添加, 若U串后缀为T,则去掉这个后缀继续流程。输出最后的S串。 */ //思路:把U串作为母串 动态匹配!! 因为an串中的长度是会变的 删掉之后的后缀也会变 #include using namespace std; #define N 1000005 int n...
阅读全文
posted @
2019-07-08 21:41
rua-rua-rua
阅读(144)
推荐(0)