12 2015 档案

摘要:题目大意给两个长度小于100000的字符串A和B,求出他们的最长公共连续子串。分析后缀自动机基础题。 根据A串构造后缀自动机,然后用B串进行匹配。假设前匹配到了s[i],l为上次停留的节点,如果l有儿子s[i],len++,l=l->ch[s[i]],否则,沿着失配边走到当前第一个... 阅读全文
posted @ 2015-12-29 13:23 outer_form 阅读(108) 评论(0) 推荐(0)
摘要:题目 分析,这道题很显然要找两个相同的字串,也就是两个后缀公共前缀,很自然地可以想到,可以使用后缀数组。 所谓的L-Gap字串,就是两个相同的字串,中间间隔了g个字符,所以,我们枚举这两个字串的长度l,然后看0和l,l和l*2…..分别从这两个位置向前和向后匹配,匹配的长度减去l就... 阅读全文
posted @ 2015-12-28 13:26 outer_form 阅读(183) 评论(0) 推荐(0)
摘要:题目大意题目大意:给定有ABC组成的串n个,然后请你生成一个长度为K的串求给定的串在生成串中最多被匹配时的次数分析AC自动机模板题。 构建trie,然后DP. p是当前节点,l是已经构造的串的长度。 没有保存father,可以使用刷表法。 f[p->ch][l]=max(f[p][... 阅读全文
posted @ 2015-12-23 19:09 outer_form 阅读(126) 评论(0) 推荐(0)
摘要:题目 分析:由于wt(u,v)=gcd(u,v),所以我们枚举gcd,而且只尝试连接gcd和它的倍数,也就是我们尝试连接(i,j),仅当j是i的倍数,至于于为什么,我也不知道。 用LCT维护最大生成树,每次连接一条边时,必定形成一个环,删除这个环中最小边即可。#include#in... 阅读全文
posted @ 2015-12-17 22:08 outer_form 阅读(176) 评论(0) 推荐(0)
摘要:题目: 后缀数组模板题,做法参见罗穗骞论文。 自认为代码写得比较好看。#include#include#includeusing namespace std;#define MAXN 500000#define MAXD 200int array[4][MAXN*2+10],hei... 阅读全文
posted @ 2015-12-14 13:47 outer_form 阅读(156) 评论(0) 推荐(0)
摘要:题目分析:重点是把每个两个区间的询问拆分成四个单个区间的询问。 ans[l][r][u][v]=ans[l][v]-ans[l][u-1]-ans[r+1][v]+ans[r+1][u-1];#include#include#include#include#include#incl... 阅读全文
posted @ 2015-12-07 22:22 outer_form 阅读(104) 评论(0) 推荐(0)
摘要:题目 题目大意:求区间内可重复全排列的个数 分析:如果S是一个多重集,它有K个不同的类型元素,各元素分别为n1,n2,…,nk个,那么,S的r排列个数为n! / (n1!n2!…*nr!)。 所以当我们知道区间[l,r]的答案求[l,r+1]的答案时,ans[l][r+1]=ans... 阅读全文
posted @ 2015-12-07 22:19 outer_form 阅读(116) 评论(0) 推荐(0)
摘要:题目描述 辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,... 阅读全文
posted @ 2015-12-03 13:52 outer_form 阅读(137) 评论(0) 推荐(0)
摘要:题目: 树链剖分:#include#include#includeusing namespace std;#define MAXN 10024#define MAXLOG 14#define INF 0x7fffffffint n,T,size[MAXN+10],dep[MAXN... 阅读全文
posted @ 2015-12-01 13:16 outer_form 阅读(137) 评论(0) 推荐(0)