上一页 1 2 3 4 5 6 7 8 9 ··· 17 下一页
摘要: 我们先用树形DP,求出选取集合S中的点,满足连通性的但是标号可重的方案数,贡献给F(i)(1$\leq$i$\leq$$\mid S\mid$),也就是我们要处理出F(i)代表取至多i个点的方案数。 然后容斥一下就求出恰好选i个点的方案数。 卡一下常就能过了。 阅读全文
posted @ 2019-01-15 16:13 Xu-daxia 阅读(206) 评论(0) 推荐(0) 编辑
摘要: luogu2257 YY的GCD 答案为: $\sum\limits_{p\in prime}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i,j)==p]$ $=\sum\limits_{p\in prime}\sum\limits_{i=1}^{\ 阅读全文
posted @ 2019-01-13 14:03 Xu-daxia 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 设$f(i)$为使$(x+y)^i \equiv x^i (mod\ p)$成立的(x,y)的对数。其中$1 \leq x \leq p 1 , 1\leq y\leq m$,m,p给定且p是一个质数。求$\sum_{i=1}^{p 1}i f(i)$,p 1$。 所以可以得到这样的k的 阅读全文
posted @ 2019-01-11 21:29 Xu-daxia 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 设$cnt[i]$为权值为i的倍数的数的数量。 $f0[i],f1[i]$分别为两种方法$gcd=i$的贡献是i的多少倍。 $F0[i],F1[i]$分别为两种方法$gcd$为$i$的倍数的贡献是i的多少倍。 $F0[i]=\sum_{j=1}^{cnt[i]}A_{cnt[i]}^{cnt[i] 阅读全文
posted @ 2019-01-11 07:53 Xu-daxia 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 斐波那契数列的通项: $$\frac{1}{\sqrt{5}}((\frac{1+\sqrt{5}}{2}) (\frac{1 \sqrt{5}}{2}))$$ 设T=$\sqrt{5} N$,$y=\frac{\sqrt{5}+1}{2}$ 原式可化为$y^n ( \frac{1}{y}^n) \ 阅读全文
posted @ 2019-01-10 09:41 Xu-daxia 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 写在前面 文章作者实力有限,本文可能有个别错误,如有错误请友好地指出。 高次同余方程就是$x^a\equiv b(mod\ p)$ 二次同余方程就是$x^2 \equiv b(mod \ p)$ 我们接下来讨论解这两种方程的方法。 那么有一个问题。既然知道了高次同余方程的解法,就可以直接用解高次同余 阅读全文
posted @ 2019-01-09 20:24 Xu-daxia 阅读(3039) 评论(1) 推荐(1) 编辑
摘要: 考虑两一个暴力 1 因为询问$[a,b]$可以拆成$[1,b]$ $[1,a 1]$所以把询问离线,然后就是求$[1,x]$中被$S_i$包含的串的数量。考虑当$[1,x 1] [1,x]$时我们把$S_x$结束节点在fail树的子树加1。然后询问就是求$S_i$在AC自动机上跑时经过所有点的点权用 阅读全文
posted @ 2019-01-07 21:43 Xu-daxia 阅读(210) 评论(0) 推荐(0) 编辑
摘要: ~~SAM+线段树合并的裸题。~~ 但我们讨论AC自动机的做法。 先建出AC自动机。考虑询问在[a,b]中出现的次数就是$[1,b]$的出现次数 $[1,a 1]$的出现次数。把询问离线。然后我们要求的就是第i个字符串在$[1,x]$中出现次数。我们在从$[1,x 1]$到$[1,x]$的过程中把$ 阅读全文
posted @ 2019-01-07 21:22 Xu-daxia 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 建立AC自动机然后,加入一个串之后考虑这个串的贡献。我们把这个串扔到AC自动机里面跑。最后对经过每一个点到的这个点在fail树的根的路径上的点有1的贡献。求链的并,我们把这些点按DFS序排序,然后把每一个点加1,每个点与上一个点的LCA 1,然后询问时的答案就是子树和这个用树状数组维护就行。至于为什 阅读全文
posted @ 2019-01-07 21:12 Xu-daxia 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 建出Trie树然后求出一个点子树中有多少笔名和真名。然后贪心匹配即可。 cpp include include include include include using namespace std; const int N=810000; int ans,n; char s[N]; struct 阅读全文
posted @ 2019-01-07 21:03 Xu-daxia 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 我们预处理出来以i为结尾的最长回文后缀(回文自动机的构建过程中就可以求出)然后就是一个区间覆盖,因为我懒得写贪心,就写了线段树优化的DP。 cpp include include include include include using namespace std; const int N=101 阅读全文
posted @ 2019-01-06 20:41 Xu-daxia 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 给你一个串S以及一个字符串数组T[1..m],q次询问,每次问S的子串S[pl..pr]在T[l..r]中的哪个串里的出现次数最多,并输出出现次数。 如有多解输出最靠前的那一个。 我们首先对m个字符串数组建出后缀自动机,然后我们可以通过跳trans边找到S前i个字符代表的前缀的最长后缀。我们要找的是 阅读全文
posted @ 2019-01-06 18:32 Xu-daxia 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 感觉很水。 因为SAM上一个点的子树大小代表这个点所表示子串的出现次数。 建出广义后缀自动机之后。在$parent$树上跑$DP$,维护$size[i][1]$,和$size[i][0]$代表i的子树中有多少第一个串的结束节点和第二个串的结束节点,然后答案就是$size[i][0] size[i][ 阅读全文
posted @ 2019-01-06 17:54 Xu-daxia 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 我们对 作文库 建出广义后缀自动机。考虑用$SAM$处理出来一个数组$mx[i]$,表示从作文的第$i$个位置向左最远在作文库中出现的子串的长度。这个东西可以在$SAM$上跑$trans$边来实现(其实求出来的是作文前i位在作文库中出现的最长后缀)。 处理出来这个东西,我们考虑用$DP$求答案。发现 阅读全文
posted @ 2019-01-06 17:49 Xu-daxia 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 首先要差分+离散化。 然后就是求形如ABA的串有多少,其中B的长度确定为k。 我们用到了设置关键点的思想。我们枚举A的长度L。然后在$1,1+L,1+L 2,1+L 3。。。$设置关键点。然后我们枚举这些关键点,试图求出跨过这个关键点的长度为L的在B左边的A有多少个。 可以证明这样可以做到不重不漏, 阅读全文
posted @ 2019-01-05 09:56 Xu-daxia 阅读(113) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 17 下一页