- 博客(52)
- 资源 (1)
- 收藏
- 关注
原创 atcoder题目合集(持续更新中)
Choosing Points 数学Integers on a Tree 构造Leftmost Ball 计数dp+组合数学Painting Graphs with AtCoDeer tarjan+polyaBuilding Cubes with AtCoDeer 枚举AtCoDeer and Election Report 贪心Snuke’s Coloring 思维题Snuke’s...
2018-12-05 11:23:46 2233
原创 codeforces题目合集(持续更新中)
CF364DCF364DCF364D 随机化算法CF438DCF438DCF438D 线段树CF280CCF280CCF280C 期望dpCF1041CCF1041CCF1041C 双端队列CF1045ACF1045ACF1045A 线段树优化建图+最大流CF1045DCF1045DCF1045D 期望dpCF1051DCF1051DCF1051D 线性dpCF1051FCF1051...
2018-12-05 11:04:37 7861 10
原创 bzoj4001: [TJOI2015]概率论(生成函数)
传送门生成函数好题。题意简述:求nnn个点的树的叶子数期望值。思路:考虑fnf_nfn表示nnn个节点的树的数量。所以有递推式f0=1,fn=∑i=0n−1fifn−1−i(n>0)f_0=1,f_n=\sum_{i=0}^{n-1}f_if_{n-1-i}(n>0)f0=1,fn=∑i=0n−1fifn−1−i(n>0)正是一个卷积的形...
2018-12-31 22:01:34 387
原创 bzoj3992: [SDOI2015]序列统计(生成函数+ntt+快速幂)
传送门生成函数简单题。题意:给出一个集合A={a1,a2,...as}A=\{a_1,a_2,...a_s\}A={a1,a2,...as},所有数都在[0,m−1][0,m-1][0,m−1]之间,mmm是一个质数,求满足全部由这个集合里的组成且长度为nnn且所有数之积与xxx在模mmm意义下相同的数列总数。思路:对a1,a2,..,as,xa_1,a_2,..,a_s,xa1,...
2018-12-31 17:43:57 331
原创 NOIP训练 偶数个5(简单数论)
传送门对于出题人zxyoizxyoizxyoi先%\%%为敬题目需要龟速乘差评。题意简述:5e55e55e5组数据,给出n,请你求出所有n位数中有偶数个5的有多少,n≤1e18n\le1e18n≤1e18思路:一眼数位dpdpdp,哎哟这nnn怎么这么大绝望.jpg既然是zxyoizxyoizxyoi大毒瘤的题自然要推一推式子了无奈.jpg考虑对每一位构造生成函数:首位:F(x)=...
2018-12-31 16:08:52 466
原创 NOIP训练 czy的后宫6(线性dp)
传送门题意简述:给一个nnn个数的数列,你可以把它最多分成mmm段,求每段数之和的最大值的最小值,以及满足这个最小值的时候划分数列的方案数。思路:第一个问题是二分经典问题,不妨设其答案为limlimlim。现在考虑dpdpdp第二个问题。我们定义状态fi,jf_{i,j}fi,j表示把前iii个数划成jjj段且满足题意的方案数。那么就有状态转移方程:fi,j=∑psum(p,i)≤l...
2018-12-31 13:58:29 168
原创 NOIP训练 czy的后宫5(树形dp)
传送门题意:给一棵有根树,树有点权,最多选出mmm个点,如果要选一个点必须先选其祖先,问选出来的点权和最大值是多少。直接背包转移就行了。代码...
2018-12-31 13:00:48 220
原创 bzoj3771: Triple(生成函数+fft+容斥原理)
传送门生成函数经典题。题意简述:给出nnn个数,可以从中选1/2/31/2/31/2/3个,问所有可能的和对应的方案数。思路:令A(x),B(x),C(x)A(x),B(x),C(x)A(x),B(x),C(x)表示选111个,222个,333个的生成函数,ans1(x),ans2(x),ans3(x)ans1(x),ans2(x),ans3(x)ans1(x),ans2(x),ans3...
2018-12-31 00:26:25 330
原创 bzoj3027: [Ceoi2004]Sweet(生成函数+搜索)
传送门生成函数好题。题意简述:给出n个盒子,第iii个盒子里有mim_imi颗相同的糖(但不同盒子中的糖不相同),问有多少种选法可以从各盒子中选出数量在[a,b][a,b][a,b]之间的糖果。思路:先对每个盒子构造出生成函数:1+x2+...+xmi=1−xmi+11−x1+x^2+...+x^{m_i}=\frac{1-x^{m_i+1}}{1-x}1+x2+...+xmi=1−x...
2018-12-30 20:44:09 244
原创 poj3734 Blocks(生成函数)
传送门生成函数入门题。按照题意构造函数:对于限定必须是出现偶数次的颜色:1+x22!+x44!+...=ex+e−x21+\frac {x^2}{2!}+\frac {x^4}{4!}+...=\frac{e^x+e^{-x}}21+2!x2+4!x4+...=2ex+e−x对于无限定的颜色:1+x1!+x22!+...=ex1+\frac x{1!}+\frac{x^2}{2!}...
2018-12-30 19:44:29 211
原创 bzoj3028: 食物(生成函数)
传送门生成函数模板题。我们直接把每种食物的生成函数列出来:承德汉堡:1+x2+x4+...=11−x21+x^2+x^4+...=\frac 1{1-x^2}1+x2+x4+...=1−x21可乐:1+x=1−x21−x1+x=\frac{1-x^2}{1-x}1+x=1−x1−x2鸡腿:1+x+x2=1−x31−x1+x+x^2=\frac{1-x^3}{1-x}1+x+x2=1...
2018-12-30 17:38:02 344 1
原创 洛谷P4238 【模板】多项式求逆
传送门多项式求逆模板题。简单讲讲?多项式求逆定义:对于一个多项式A(x)A(x)A(x),如果存在一个多项式B(x)B(x)B(x),满足B(x)B(x)B(x)的次数小于等于A(x)A(x)A(x)且A(x)B(x)≡1mod  xnA(x)B(x)≡1 \mod x^nA(x)B(x)≡1modxn,那么我们称B(x)为A(x...
2018-12-30 15:49:02 208
原创 多项式相关&&生成函数相关&&一些题目(updating...)
索引多项式乘法多项式求逆多项式求导多项式积分多项式乘法这个大家应该都会吧还是简单推推式子吧。已知的:A(x)=∑i=0naixiA(x)=\sum_{i=0}^na_ix^iA(x)=∑i=0naixiB(x)=∑i=0mbixiB(x)=\sum_{i=0}^mb_ix^iB(x)=∑i=0mbixi要求的:C(x)=A(x)B(x)=∑i=0n+m(∑j=0...
2018-12-30 10:50:32 1420
原创 codeforces 940E. Cashback(线性dp)
传送门题意:给出一个nnn个数的序列,要求将序列分成若干段,对于一段长度为kkk的自动删去最小的⌊kc⌋\left \lfloor \frac{k}{c} \right \rfloor⌊ck⌋个数,求删去之后剩下的数的和的最小值。思路:显然每个被分开的段长不超过ccc时最优(不然会有其他更小的局部最小值来替代不够优),于是dpdpdp转移一下就行了:当前这个位置跟之前的分在一起:fi=...
2018-12-29 21:29:20 220
原创 Codeforces 1086 简要题解
传送门这场比赛原地爆炸了啊!!!只做了两道。AAA题手贱于是wawawa了一次,死活调不出错。思路:可以直接上分类讨论。不过可以人脑减去一些讨论。我们设最初的坐标为(x1,y1),(x2,y2),(x3,y3)(x_1,y_1),(x_2,y_2),(x_3,y_3)(x1,y1),(x2,y2),(x3,y3)然后把x,yx,yx,y分别排序变成x1′,x2′,x3′x...
2018-12-24 00:00:49 1054
原创 bzoj2865&&1396: 字符串识别(后缀自动机+线段树)
传送门卡空间差评!题意简述:给一个字串,对于每个位置求出经过这个位置且只在字串中出现一次的子串的长度的最小值。解法:先建出samsamsam,显然只有当sizep=1size_p=1sizep=1的时候才对答案有贡献。于是对于每个sizep=1size_p=1sizep=1的状态分情况更新答案。pos=[pos[p]−len[link[p]]+1,pos[p]]pos=[pos[...
2018-12-23 14:16:29 323
原创 bzoj4516: [Sdoi2016]生成魔咒(后缀自动机)
传送门samsamsam入门题。题意简述:给出一个串让你依次插入字符,求每次插入字符之后不同子串的数量。显然每次的变化量只跟新出现的nnn个后缀有关系,那么显然就是maxlenp−maxlenlinkpmaxlen_p-maxlen_{link_p}maxlenp−maxlenlinkp。注意到字符集很大,可以用mapmapmap来维护转移边。代码:#include<bi...
2018-12-23 12:16:04 164
原创 关于后缀自动机的一些想法&&题目收集(持续更新中)
上周学习了后缀自动机。于是蒟蒻ldxldxldx在DZYODZYODZYO和zxyoizxyoizxyoi的引导下逐渐对samsamsam这个东西有了自己的认识。chapter1chapter 1chapter1 想法&amp;总结为啥会有samsamsam这个东西?因为samsamsam可以做到利用O(n)O(n)O(n)的时空来识别一个字串的n2n^2n2个字串。因为samsam...
2018-12-23 00:17:23 286
原创 bzoj3277: 串(后缀自动机+启发式合并)
传送门跟这道题是一模一样的。于是本蒟蒻又写了一遍10min1A庆祝代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int N=2e5+5;typedef long long ll;int T,k;string s[N];struct SAM{ int last,...
2018-12-22 16:51:11 319
原创 spoj7258 Lexicographical Substring Search(后缀自动机)
传送门samsamsam基础题。题意简述:给出一个串,询问第kkk大的本质不同的串。然而这就是弦论的简化版。我们把samsamsam建出来然后贪心选择就行了。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int N=2e5+5;int n,q,K;char s...
2018-12-22 16:35:24 216
原创 bzoj3926: [Zjoi2015]诸神眷顾的幻想乡(广义后缀自动机)
传送门题意简述:给出一棵trietrietrie树,每个点表示一个字符,求树上所有路径组成的不同字串数。(叶子数≤20\le 20≤20)由于有一个神奇的条件,考虑以每一个叶子为树根统计每个点到树根的字串,这样就考虑到了所有情况,于是就这样建立广义samsamsam统计答案即可。代码:#include<bits/stdc++.h>#define ri register in...
2018-12-22 15:07:49 183
原创 bzoj3473: 字符串(后缀自动机+启发式合并)
传送门调代码调的我怀疑人生。启发式合并用迭代写怎么都跑不过(雾换成了dfsdfsdfs版本的终于过了233.题意简述:求给出nnn个字串,对于每个给定的字串求出其有多少个字串在至少kkk个剩下字串中出现过。显然先对所有字串建一个samsamsam出来,然后对于每个状态用一个setsetset维护在哪些字串里面出现过(这个显然需要在建完parentparentparent树之后启发式合并...
2018-12-22 14:23:22 340
原创 bzoj3238: [Ahoi2013]差异(后缀自动机)
传送门后缀自动机好题。题意:做法:samsamsam 废话考虑翻转字串,这样后缀的最长公共前缀等于前缀的最长公共后缀。然后想到parentparentparent树上面两个串的最长公共后缀跟他们所处状态的lcalcalca有关系。于是对于每一个lcalcalca都处理出它的sizesizesize和maxlengthmax_{length}maxlength就行了。代码:#i...
2018-12-21 19:26:04 231
原创 atcoder Iroha and a Grid(组合数学)
传送门组合数学好题。给你一个hhh行www列的网格,其中左下角aaa行bbb列不能走,问从左上角走到右下角有多少种走法(每次只能向右或者向下)我们考虑分步计数。我们一共能走的区域是总网格区域去掉一个左下角的,可以看成是一个b∗(h−a)b*(h-a)b∗(h−a)的矩形和一个h∗(w−b)h*(w-b)h∗(w−b)的矩形拼起来的图案。于是我们可以枚举两个矩形的交界处来统计答案。相当...
2018-12-20 00:03:02 175
原创 codeforces 1092F. Tree with Maximum Cost(换根dp)
传送门sbsbsb树形dpdpdp题。题意简述:给出一棵边权为1的树,允许选任意一个点vvv为根,求∑i=1ndist(i,v)∗ai\sum_{i=1}^ndist(i,v)*a_i∑i=1ndist(i,v)∗ai的最大值。直接统计出子树的权值和转移就行了。代码:#include<bits/stdc++.h>#define ri register intusin...
2018-12-19 23:28:36 347
原创 bzoj5296: [Cqoi2018]破解D-H协议(bsgs)
传送门bsgsbsgsbsgs基础题。考虑到给的是原根,因此没无解的情况。于是只需要每次把a,ba,ba,b解出来。然后可以通过预处理节省一部分时间。代码:#include<bits/stdc++.h>#include<tr1/unordered_map>#define ri register intusing namespace std;inline...
2018-12-18 23:48:45 135
原创 bzoj2242: [SDOI2011]计算器(数论)
传送门数论基础题。对于第一种情况用快速幂,第二种用exgcdexgcdexgcd,第三种用bsgsbsgsbsgs于是自己瞎yyyyyy了一个bsgsbsgsbsgs的板子(不知道是不是数据水了没卡如果有找出错的希望指正谢谢)下面谈谈我对这个方法的理解。实际上跟网上说的差不多。要解ax≡bmod&amp;ThinSpace;&amp;ThinSpace;pa^x\equiv b\mo...
2018-12-18 23:14:06 151
原创 bzoj1406 : [AHOI2007]密码箱(简单数论)
传送门简单数论暴力题。题目简述:要求求出所有满足x2≡1mod&ThinSpace;&ThinSpace;nx^2\equiv1 \mod nx2≡1modn且0≤x&lt;n0\le x&lt;n0≤x<n的xxx考虑到使用平方差公式变形。(x−1)(x+1)≡0mod&ThinSpace;&ThinSpace;n(x-1)(x+1...
2018-12-17 15:27:58 228
原创 ural1132 Square Root(二次剩余)
传送门MD写一道二次剩余的板题差点写自闭了。我用的是cipollacipollacipolla算法。利用的是欧拉准则来找寻一个二次非剩余类来求根。注意这题有两个等根和模数为2的情况。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int T,n,mod;inline int ksm...
2018-12-17 15:05:33 275
原创 bzoj3667: Rabin-Miller算法(Pollard-rho)
传送门Pollard−rhoPollard-rhoPollard−rho板题。题意简述:给出几个数,让你判断是不是质数,如果不是质数就求出其最大质因子,数的大小为1e181e181e18以内。先用miller−rabinmiller-rabinmiller−rabin判断是不是素数,然后上Pollard−rhoPollard-rhoPollard−rho质因数分解即可。代码:#incl...
2018-12-17 14:12:54 308
原创 bzoj4802: 欧拉函数(Pollard-rho)
传送门Pollard−rhoPollard-rhoPollard−rho模板题。题意简述:求ϕ(n),n≤1e18\phi(n),n\le 1e18ϕ(n),n≤1e18先把nnn用Pollard−rhoPollard-rhoPollard−rho分解质因数,然后就可以算了。代码:#include&lt;bits/stdc++.h&gt;#include&lt;tr1/unordere...
2018-12-17 13:41:44 189
原创 hdu2138 How many prime numbers(miller-rabbin)
传送门miller−rabbinmiller-rabbinmiller−rabbin素数测试的模板题。实际上miller−rabbinmiller-rabbinmiller−rabbin就是利用费马小定理和二次探测的性质来进行判断的。注意要多带几个素数进去判断(听大神说只要取遍了50以内的质数就可以判断intintint范围内的)代码:#include&lt;bits/stdc++.h&...
2018-12-17 11:21:58 144
原创 Codeforces 1093 简要题解
传送门GGG题手速慢了没有在比赛的时候码出来233.五道题滚粗。现在FFF题没做(不会),等会做了再更新吧。先谈谈其他几道题。AAA题不小心看错题直接看奇偶性构造答案。如果是奇数就用一个3和几个2,不然就全部用2.代码:#include&amp;amp;lt;bits/stdc++.h&amp;amp;gt;#define ri register intusing namespace std;inline...
2018-12-16 01:40:16 716
原创 hdu4641 K-string(后缀自动机)
传送门后缀自动机基础题。题意简述:支持动态在串尾插入字符,查询在串中出现超过kkk次的子串的个数。动态修改samsamsam,每次增量构造好了之后在parentparentparent树上从新建的npnpnp到根节点上没有超过kkk次的状态全部更新一遍统计答案就行。因为从npnpnp到根的出现次数是单调递增的,因此只要当前节点出现次数不少于kkk次就不用继续更新了。代码:#inclu...
2018-12-15 22:29:47 223
原创 spoj Substrings(后缀自动机)
传送门后缀自动机基础题。求长度为iii的子串出现次数的最大值。对原串建出samsamsam,然后用sizsizsiz更新每个maxlenmaxlenmaxlen的答案。然后由于后缀链接将其转化成了一种树形结构,因此直接在上面树形递推即可。代码#include<bits/stdc++.h>#define ri register intusing namespace st...
2018-12-15 21:38:24 141
原创 bzoj3998: [TJOI2015]弦论(后缀自动机)
传送门后缀自动机基础题。求第kkk小的子串(有可能要求本质不同)直接建出samsamsam,然后给每个状态赋值之后在上面贪心选最小的(过程可以类比主席树/平衡树的查询操作)即可。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int N=1e6+5;int n,t,...
2018-12-15 21:35:15 177
原创 spoj Longest Common Substring II(后缀自动机)
传送门后缀自动机基础题。给出10个串求最长公共子串。我们对其中一个建一个samsamsam,然后用剩下九个去更新范围即可。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int N=2e5+5;int T=0,n;char s[N];struct SAM{ i...
2018-12-15 17:05:09 167
原创 poj3415 Common Substrings(后缀自动机)
传送门后缀自动机基础题。给两个字符串,让你求长度不小于kkk的公共子串的数量。这题可以用后缀自动机解决废话考虑对其中一个字串建出后缀自动机,然后用另一个在上面跑,注意到如果一个状态有贡献的话,从它到根的状态都会有贡献,因此我们给每个节点打一个懒标记最后再统计一次答案即可。代码:#include<iostream>#include<cstdio>#inclu...
2018-12-15 15:56:18 182
原创 bzoj3676: [Apio2014]回文串(后缀自动机)
传送门对原串建立一个后缀自动机,然后用反串在上面匹配。如果当前匹配的区间[l,r][l,r][l,r]包裹了当前状态的endposendposendpos中的最大值,那么[l,maxpos][l,maxpos][l,maxpos]就是一个回文串。于是赶快码一波统计答案(很遗憾会wa)因为有可能原串在答案中。于是我们可以遍历其linklinklink链一直跳来更新答案。代码:#incl...
2018-12-15 12:03:45 232
原创 spoj1812 Longest Common Substring(后缀自动机)
传送门后缀自动机模板题。题意简述:求两个字串的最长公共子串长度。对其中一个构建后缀自动机,用另外一个在上面跑即可。代码:#include&amp;lt;bits/stdc++.h&amp;gt;#define ri register intusing namespace std;const int N=5e5+5;int n;char s[N];struct SAM{ int tot,l...
2018-12-15 10:36:30 193
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人