- 博客(8)
- 收藏
- 关注
原创 AC自动机学习记录
学完了Trie树和KMP算法,我们就可以继续学习AC自动机了。。。AC自动机,全名Aho-Chorasick string match(不是所有题都可以AC的意思= =,否则OI比赛还有什么意义),由于多模板的字符串匹配,其基本做法是在Trie树上建立fail指针(基本相当于KMP算法中next数组),然后在Trie上进行KMP即可,不多说了,直接上习题。COGS 1913 AC自动机的裸
2015-04-29 19:44:18 783
原创 KMP算法学习笔记
KMP是一种字符串匹配算法,网上有许多的讲解和介绍,都非常清楚明白,这里只说明一点next[i]表示[1,i-1]位中的最长公共前缀后缀,因此在遇到字符不匹配时,直接将字符串右移j-next[j]位即可。不多说了,直接上习题POJ 3461 Oulipo KMP算法裸题,直接上模板 code:#include#include#includeusing namespace std;cha
2015-04-25 16:54:24 712
原创 Trie树模板
#include#include#includeusing namespace std;struct trie_node{ char letter; int sum; bool f; trie_node *next[26]; trie_node(char letter): letter(letter) {int i;for (i=0;i<=25;++i) next[i]=NULL;
2015-04-22 19:50:06 612
原创 Trie树学习记录
真的不能再拒绝字符串算法的学习,先从Trie树学起吧。。。COGS 词链,裸题,建出Trie树后遍历一遍,比较根到每个叶子节点的单词个数,取最大值;code:#include#include#includeusing namespace std;struct trie_node{ char letter; int sum; bool f; trie_node *next[26
2015-04-22 19:34:51 561
原创 先修课刷题总结
四月份一直有点忙,忙完省选忙先修课,刷完90道题,发现有很多坑点,坐下总结。1、有关实数的题一定要注意精度,两个实数相等不能直接判断,四舍五入也需要特殊判断,详见“求一元二次方程的根”。2、字符串类的题一定要考虑当前位置是否合法,很多题就是这样一遍遍RE的。3、有许多题目中数组的标号都是从a[0][0]开始的,一定要结合题意来理解,详见“矩阵消减归零序列和”。4、读清题意,不要手算
2015-04-16 21:33:15 1231
原创 2015山东省选一轮总结
其实省选一轮过去已经有一段时间了,但因为先修课的原因,一直未能作总结。。。DAY 1:这一天的暴力分75分,我拿到了55分。T1的20分暴力比较好拿,正解是对每两个块之间的元素交换blabla,总之没听懂。T2的35分暴力也还好,前20分乱搞即可,后15分因为是链状数据,在其上套一个线段树即可,但考试的时候未考虑是Win下评测,爆栈了两次。正解是虚树+欧拉路径+LCA,没听懂,不过zk
2015-04-16 20:32:12 902 1
原创 【BZOJ 1925】【SDOI 2010】地精部落
代码短的惨绝人寰,思维复杂度高的惨绝人寰。首先很容易抽象出模型,求长度为n的抖动子序列个数,然后我们开始蛋疼。状态 f[i][j]表示以[1,j]开头的长度为i的,并且第一位是下降的抖动子序列个数。显然的是,实际上的答案是个数*2,因为这样并没有算上第一位是上升的。状态转移方程:(1)首先我们考虑开头为[1,j-1]的抖动子序列个数,显然这样的个数为f[i][j-1];(2)然
2015-04-09 10:51:04 1600 3
原创 【BZOJ 2120】【国家集训队 2011】【数颜色】
首先这题暴力可过,没事干就别写正解。。。正解是三维带修改莫队,在普通莫队基础上再加上一个时间维,作为第三关键字参与排序,但是时间的转移十分蛋痛。。。如果时间转移的下标在[L,R]内,就要对ans进行维护,同时对数组修改。如果不在,就只对数组修改。。。code:#include#include#include#include#includeusing namespace std
2015-04-05 17:04:44 797
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人