解法1:后缀自动机 解法1.1用串1建后缀自动机,用串2匹配。并记录能匹配的长度。匹配成功+1,否则变为maxlen[最后fail到的位置]+1。 解法1.2串一先加,然后加入'#‘。再加串2.加串2的时候,如果新得到的节点的slink在一串,则说明出现了2次。 解法1.3.建立广义后缀自动机,用数 ...
分类:
其他好文 时间:
2019-05-03 16:06:40
阅读次数:
119
题目背景 数据规模和spoj上有所不同 题目描述 给定一棵n个节点的树,有两个操作: CHANGE i ti 把第i条边的边权变成ti QUERY a b 输出从a到b的路径中最大的边权,当a=b的时候,输出0 CHANGE i ti 把第i条边的边权变成ti QUERY a b 输出从a到b的路径 ...
分类:
其他好文 时间:
2019-05-02 09:21:04
阅读次数:
142
Description: 对于给定正整数$N$,其中$N$不是完全平方数,求方程 $$ x^2 ?Ny^2=1 $$ 的最小正整数根。 ...
分类:
其他好文 时间:
2019-04-25 11:57:46
阅读次数:
139
首先要求第k大就想到用主席树来处理 但是不能直接用树链剖分的dfs序来维护,因为一条链对应的dfs下标可能是断开的几段,无法用权值线段树来维护 那么久维护每个点到根节点的全值线段树,结点u的权值线段树记录了其到根节点路径上数值的出现次数 主席树相当于维护了一个前缀和,由树上前缀和可以分析出u->v路 ...
分类:
其他好文 时间:
2019-04-24 15:58:13
阅读次数:
156
题意:n个点的树,每个点有权值,问你u~v路径第k小的点的权值是? 思路: 树上主席树就是每个点建一棵权值线段树,具体看jq博客,LCA用倍增logn求出,具体原理看这里 LCA板子: 代码: ...
分类:
其他好文 时间:
2019-04-24 00:22:40
阅读次数:
160
#include #define ll long long using namespace std; const int maxn=1e7+10; int vis[maxn]; int mu[maxn]; int prime[maxn]; int tot=0; int sum1[maxn]; int... ...
分类:
其他好文 时间:
2019-04-14 12:28:06
阅读次数:
122
http://www.spoj.com/problems/LCS/ 题目:求两个串的最长公共子串 分析: #include <bits/stdc++.h> #define LL long long #define P pair<int, int> #define lowbit(x) (x & -x) ...
分类:
其他好文 时间:
2019-04-10 23:26:22
阅读次数:
221
A - D-query Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, ...
分类:
其他好文 时间:
2019-04-08 00:54:37
阅读次数:
129
题面传送门 题意:给出两个$n=250000$的字符串,求最长公共子串。 思路:把第一个字符串放到SAM里面去。 对于第二个串,能匹配则匹配,不能匹配就跳回能匹配的位置,如果一个都不能匹配,则cur要重新初始化为root。 对后缀自动机的理解还比较模糊,怕误人子弟,此题就不做详述。 ...
分类:
其他好文 时间:
2019-04-06 14:13:07
阅读次数:
128
正解:SA 解题报告: 传送门! 啊先给个翻译趴QwQ大概就是说给个字符串,求互不相等的子串的个数 算是道小水题辣趴,,,并不难想到的呢QAQ只是因为是新知识所以巩固下而已QAQ 然后就显然考虑合法方案就会是所有方案-不合法方案 所有方案显然是n*(n+1)/2,不合法方案就是相等的子串的个数 考虑 ...
分类:
其他好文 时间:
2019-04-05 09:16:13
阅读次数:
163