自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

OI回忆录

  • 博客(9)
  • 收藏
  • 关注

原创 【后缀自动机】SPOJLCS SPOJNSUBSTR SPOJLCS2 HDU4416

据说后缀自动机可以替代后缀数组和后缀树…… 后缀自动机,用线性的节点数来保存所有的后缀。构建自动机struct node { int ch[26], len, link; void init() { len=link=0; memset(ch,0,sizeof ch); } }tree[MAXN<<1];int pos; char w

2015-12-29 22:20:36 293

原创 【后缀数组】poj1743Musical Theme

推荐阅读《后缀数组——处理字符串的有力工具》。 后缀数组的主要目的是将每一个后缀提取出来,按字典序排序,并求出height数组(当前排名为i的后缀与排名为i-1的后缀的最长公共前缀)。后缀数组的排序是基于基数排序。bool cmp(int num[],int a,int b,int len) {return num[a]==num[b]&&num[a+len]==num[b+len];}void

2015-12-28 23:52:55 241

原创 CodeforcesRound#337(Div. 2)

终于等到了一场不是凌晨开始的CF了~(≧▽≦)/~ 读题慢,手速慢,破题慢,代码实现能力不够,一AC不行,rating掉…… 题目链接第一题:有一个根长度为nn的木棍,将它做成一个矩形(不能是正方形)。求有多少种方案(长和宽交换是一种)。水题一道。#include <iostream> #include <cstdio> using namespace std; int n; int main(

2015-12-27 22:10:11 327

原创 【AC自动机】hdu2222 hdu2896 hdu3065 zoj3430 poj2778

AC自动机用于多个模式串与多个母串的匹配。 第一步:根据模式串建立字典树int len=strlen(w), r=root; for(int i=0;i<len;++i) { if(tree[r].ch[w[i]])r=tree[r].ch[w[i]]; else r=tree[r].ch[w[i]]=++cnt; } ++tree[r].c

2015-12-24 20:39:16 315

原创 【置换+DP】BZOJ1025

题目链接这道题题目很长,废话太多。 说白了就是有若干个正整数,它们的和为nn,求lcmlcm即最小公倍数有多少种。把题目看透后,似乎题变简单了。然后一眼就看出是一个DP。然而蒟蒻还是不会做。动规弱爆了= =决定最小公倍数的,是这些数的质因数以及对应的幂。 那么首先筛一下素数吧,然后DP。/******************************************************

2015-12-19 12:30:59 294

原创 【HDU3294,URAL1294】manacher算法

manacher算法用于计算最长回文子串。 上模板 //s是原子符串,而w是在s的前面、后面、字符之间插入一个未出现的字符‘#’ scanf("%s",s); w[0]='*';//防止越界,在最前面加上一个‘*’ w[++len]='#'; for(int tmp=strlen(s), i=0;i<tmp;++i) { w[++len

2015-12-19 12:05:48 258

原创 【LCT】BZOJ2049[Sdoi2008]Cave 洞穴勘测

传送门动态树LCT是一种NB的数据结构,虽然不太好写。 与树链剖分类似,LCT把最后一个访问的儿子做为重边(暂且将Perferred Path叫做重边吧QAQ)。 对于一个由重边组成的链用序列之神Splay来维护。那么一棵LCT就有很多个Splay,然后每一个Splay的根都和它真实的父亲相连。在Splay中是将该点上面的点放在左儿子,下面的点放在右儿子。 具体的操作详见杨哲的SPOJ375

2015-12-05 17:07:57 558

原创 【弦图染色】BZOJ1006神奇的国度

传送门如果不知道玹图,请学习陈丹琦的弦图与区间图 PPT学习完了之后就发现这是一道裸题= = 先求出完美消除序列,再倒着进行贪心。蒟蒻用的是MCS算法。 在这里蒟蒻提一个小小的问题,为什么一定要先求出完美消除序列再来进行贪心?#include <cstring> #include <cstdio> #define MAXN 10005 #define MAXM 1000005 using n

2015-12-05 09:03:14 414

原创 BZOJ1005[HNOI2008]明明的烦恼

传送门蒟蒻这段时间才开始刷BZOJ,然后发现很多知识都没学= = 这道题需要用到prufer编码。prufer编码用于树的形态。一个prufer编码与一棵树是唯一对应的。如何求prufer编码? 第一步:算出每一个点的度。 第二步:找到度最小同时编号最小的点,将它删去,并将它的父亲放入prufer编码中。 第三步:重复第二步,直到只剩下两个节点。 如: 这棵树的prufer编码为1

2015-12-04 21:43:25 333

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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