上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页
摘要: 题目描述 题解: 容斥,将询问变成4个加权询问。 然后就是cdq了。 代码: 阅读全文
posted @ 2018-12-19 15:14 LiGuanlin 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 对于第一问,我们求二维LIS即可; 对于第二问,我们可以记录向前最长长度,向前最长方案数,向后最长长度,向后最长方案数。 其实改改树状数组即可。 还有,方案数一定要开double。 代码: 阅读全文
posted @ 2018-12-19 15:10 LiGuanlin 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 将交换看作两个插入+两个删除。 然后CDQ。 代码: 阅读全文
posted @ 2018-12-19 15:06 LiGuanlin 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 将前n个数看作插入,后m个数仍看作删除。 然后就是cdq分治。 代码: 阅读全文
posted @ 2018-12-19 15:03 LiGuanlin 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 这是cdq分治模板题。 前置:cdq分治。 好像是一位大佬搞出来的神奇分治,可以直接干掉一层树形结构。 其实实现还是比较简单的。 对于区间(l,r),我们先处理(l,mid)和(mid+1,r),然后处理左右区间之间产生的影响。 具体顺序看题目而定。 比如本题,我们可以先令a有序, 阅读全文
posted @ 2018-12-19 14:56 LiGuanlin 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 你要用ATGC四个字母用两种操作拼出给定的串: 1.将其中一个字符放在已有串开头或者结尾 2.将已有串复制,然后reverse,再接在已有串的头部或者尾部 一开始已有串为空。求最少操作次数。 len<=100000 题解: PAM+dp。 先建出PAM,然后对于每一个偶树上的串,满足: 阅读全文
posted @ 2018-12-16 17:15 LiGuanlin 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 建出PAM之后倍增跳查。 貌似很裸。 代码: 阅读全文
posted @ 2018-12-16 17:08 LiGuanlin 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 看起来是个dp。 还需要SAM维护。 还需要单调队列优化。 代码: 阅读全文
posted @ 2018-12-15 10:26 LiGuanlin 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 这篇题解是关于manacher+SAM的。 PS.PAM已更新。 因为我还不会回文自动机我会学的 SAM支持给出一个串,求出现次数。 manacher支持找回文串。 然后放在一起,当每个节点回文半径扩展时查询。 这样时间是O(n^2)的。 为了时间,我们可以O(nlogn)预处理每 阅读全文
posted @ 2018-12-15 10:23 LiGuanlin 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 最开始我想倒建倒查,结果发现需要另开线段树维护,结果算法退化了…… 说正解。 正建正查。 线段树合并+SAM。 将询问串放在SAM中,判断是否有匹配。 然后设定边界就可以了。 代码: 阅读全文
posted @ 2018-12-15 10:13 LiGuanlin 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题接: 没有任何意义的LCT+SAM。 没有题解 代码: 阅读全文
posted @ 2018-12-15 10:00 LiGuanlin 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 对于多串的子串,我们可以建出广义后缀自动机。 由于本题询问的是(子串出现次数>=k)×len的总和,就将所有串扔到自动机中,爆跳pre并标记。每个点得到 一个经过次数cnt。 若cnt>=k,说明这个点压缩的所有子串都可以作为答案串。 然后处理出每个点到根的树链上所有点的答案。 代 阅读全文
posted @ 2018-12-15 09:58 LiGuanlin 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 好神啊 建出后缀自动机,然后处理每个点parent树子树中endpos的数量,若为1即可成为识别子串。 对于每个点维护原串所在位置以及right的最小值mn。 然后套上线段树维护区间最小值。 基本就这样了。 代码: 阅读全文
posted @ 2018-12-11 18:38 LiGuanlin 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 对于所有n串建广义后缀自动机。 (广义后缀自动机唯一区别就是每次将las附成1,并不需要在插入时特判) 建完后再建出parent树,然后用dfs序+树状数组搞区间不同种类。 其实就是HH的项链+广义后缀自动机。很水的。(虽然我调了半个晚上) 代码: 阅读全文
posted @ 2018-12-10 21:13 LiGuanlin 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 鉴于子串我们很容易想到后缀自动机。 先建后缀自动机,然后处理单点价值以及对于每个点的总价值。 T=0要求去重,此时单点价值为1; T=0要求不去重,此时单点价值为parent树上endpos的数量。后缀的前缀就是子串。 由于建成的后缀自动机有向无环,我们可以O(n)时间处理每个点的 阅读全文
posted @ 2018-12-10 18:41 LiGuanlin 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 模板题,这里放一下代码: 阅读全文
posted @ 2018-12-10 09:26 LiGuanlin 阅读(152) 评论(0) 推荐(0) 编辑
摘要: bzoj 题解: 后缀数组+RMQ 有一个性质是,若出现ABA形式,且|A|比较大|B|<=m,那么真正的B块端点可以来回滑动。 因此我们可以正反做两遍后缀数组,利用RMQ求出区间最小值即前缀长。 然后先枚举|A|,再枚举左边A的端点,这样ABA位置大体确定。 然后在两个左端点处分别向两端延伸,更新 阅读全文
posted @ 2018-12-09 18:53 LiGuanlin 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目大意:求 题解:大毒瘤。 先反演: 然后套路处理后面那三坨为fa,fb,fc。 为了速度,我们可以直接枚举lcm,将μi!=0&&μj!=0之间建一条边权为lcm(i,j)的边。 如果(u,v,w)这个三元组合法的话: 三者互不相同。此时应形成一个三元环。 两项相同。此时有一条边即可。 三项相同 阅读全文
posted @ 2018-12-06 19:50 LiGuanlin 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: (这是模拟退火题解) 我走上模拟退火这条不归路的第一步 讲一下模拟退火: 物理上,温度骤降会导致材质的损坏,但是晶体的逐渐冷却过程趋于稳定。 这就有了模拟退火算法。 模拟退火的意思,就是先确定初始温度和一个降温系数,然后逐渐冷却,得出正确结果。 这里放一张图: 比如O是我们现在的位 阅读全文
posted @ 2018-12-05 16:31 LiGuanlin 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 题目描述: f为斐波那契数列。 T组询问,每次给出表格的n、m。表中(i,j)为gcd(i,j),求表中所有数之积mod 1e9+7的值。 T<=1e5,n,m<=1e9 题解: 反演。 代码: 阅读全文
posted @ 2018-12-01 16:12 LiGuanlin 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 粘题目描述: 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。 小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。 然而他很快发现工作量太大了,于是向你寻求帮助。 你的任务很简单,小z会告诉你一个整数 阅读全文
posted @ 2018-12-01 08:48 LiGuanlin 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 对于一个询问,你需要求出max(Ai xor Ai+1 xor Ai+2 ... xor Aj),其中l<=i<=j<=r。(强制在线) 题解: 可持久化Trie+分块。 分块处理当前块上某点为起点,块后任一点为终点的最大异或和。 代码: 阅读全文
posted @ 2018-11-30 20:33 LiGuanlin 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给定长度为n的数列X={x1,x2,...,xn}和长度为m的数列Y={y1,y2,...,ym},令矩阵A中第i行第j列的值Aij=xi xor yj,每次询问给定矩形区域i∈[u,d],j∈[l,r],找出第k大的Aij。 题解: 由于n小m大,面向m建可持久化trie树。 查询时查 阅读全文
posted @ 2018-11-30 20:24 LiGuanlin 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给定n个非负整数A[1], A[2], ……, A[n]。对于每对(i, j)满足1 <= i < j <= n,得到一个新的数A[i] xor A[j],这样共有n*(n-1)/2个新的数。求这些数(不包含A[i])中前k小的数。 题解: 建一棵01Trie树,然后把所有数扔进去。 将 阅读全文
posted @ 2018-11-30 20:19 LiGuanlin 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给定矩阵A,B和模数p,求最小的x满足 A ^ x = B ( mod p)。(p是质数) 题解: 同样是BSGS,只是这道题放在了矩阵上。 其实并不需要矩阵求逆,将BSGS原理中的i * m + j 改为 i * m - j即可。 代码: 阅读全文
posted @ 2018-11-30 20:11 LiGuanlin 阅读(210) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页