自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(276)
  • 收藏
  • 关注

原创 [JZOJ5736]斐波那契

求gcd(afn+bfn+1,cfn+dfn+1)gcd(afn+bfn+1,cfn+dfn+1) \gcd (af_n+bf_{n+1},cf_n+df_{n+1})。 首先有几个简单的性质: gcd(fx,fy)=fgcd(x,y)gcd(fx,fy)=fgcd(x,y)\gcd(f_{x},f_{y})=f_{gcd(x,y)} gcd(a,b)=gcd(a−kb,b)gcd(a,b)...

2018-05-22 17:09:03 388

原创 [JZOJ5735]身份证 Trie树+二维偏序

我们可以对所有人的三个串分别拿出来建三棵Trie树,一个人在Trie树上的位置就组成一个三元组(a,b,c)(a,b,c)(a,b,c),然后询问相当于三个指针在三棵Trie树上移动,每次询问有多少个(dfnai,dfnbi,dfnci)(dfnai,dfnbi,dfnci)(dfn_{a_i},dfn_{b_i},dfn_{c_i})在三个特定的区间内。直接三维偏序再面向数据开空间再减减枝是可以...

2018-05-22 16:50:57 241

原创 [AGC024] E - Sequence Growing Hard 树型DP

把问题看成每次向序列中添加一个[1,K][1,K][1,K]的数,假设我们要填的数是xxx,因为要保证字典序变大,那么所填的位置往后的第一个非xxx数必须<x<xxxx中的任意位置再填一个xxx都是等价的,所以等同于只能在一个<x<xxxx。 那我们把填一个数看成一个二元组(t,w)(t,w)(t,w),表示在第ttt次填了数www,假设把这个www填的位置后面的那个&l...

2018-05-21 09:16:16 729

原创 [BZOJ2001][HNOI2010]城市建设 分治最小生成树

有一个引理,就是做最小生成树的时候,假设有mmm条边权值不确定,是可以把整个图简化到边数只有O(m)O(m)O(m)级别的。 也就是说假如考虑分治,把修改的那些边看成不确定边,然后简化一下图,分治下一层的时候就大概只需要做边数只有分治区间大小级别的最小生成树,复杂度就能降到O(mlog2m)O(mlog2⁡m)O(m\log ^2m)。 具体简化图的方法如下: 1. 先强制合并所有不确定边(...

2018-05-20 19:44:08 520

原创 [Codeforces 966]E - May Holidays 分块+虚树

对询问分块,把每n−−√n\sqrt{n}个询问放在一起处理,并对这些询问涉及到的点建出一棵虚树。 把一个点的反转看成是其到根的路径上的每个点titit_i的+1+1+1或−1−1-1,那么虚树上一条边的titit_i变化都是相同的。我们在处理每一块之前重构所有的titit_i,然后对于每条边维护所有没有去度假的人的titit_i,并使之有序且要把titit_i相等的合并起来,然后只需要再维护一...

2018-05-20 19:23:03 444

原创 [Codeforces 976]D - Degree Set 构造

当n=0n=0n=0,只需一个点即可。 当n=1n=1n=1,构造一个d1+1d1+1d_1+1个点的完全图即可。 那么对于原问题要求构造度数集合为{d1,d2,...,dn−1,dn}{d1,d2,...,dn−1,dn}\{d_1,d_2,...,d_{n-1},d_n\}的一个图,可以从所有dn+1dn+1d_n+1个点中拿出d1d1d_1个点,向其它所有点连边,就满足了集合中d1d1d...

2018-05-20 19:11:17 346

原创 [BZOJ2870]最长道路tree 边分治

因为点分治会带来子树信息合并的问题,于是考虑通过添加虚点的方法把多叉树转成二叉树,然后采用边分治,每次考虑经过分治重边的情况,把两边的所有点按路径上的最小权值排序,然后相互更新一下即可,复杂度O(nlog2n)O(nlog2⁡n)O(n\log ^2n)。 因为多叉树转二叉树的过程中添加了虚点,所以假如xxx和yyy的lca是虚点,那么路径(x,y)(x,y)(x,y)上原本的那个实点lca的信...

2018-05-16 11:48:24 783

原创 [CTSC2018]假面 01背包的删除

首先记录ai,jai,ja_{i,j}表示单位iii生命值为jjj的概率,那么每次修改可以O(m)O(m)O(m)。 对于询问,先求出exi=∑mij=1ai,jexi=∑j=1miai,jex_{i}=\sum_{j=1}^{m_i} a_{i,j}表示单位iii存活的概率。那么我们只要对于每一个单位iii,求出除了该单位的剩下k−1k−1k-1个单位中,有1..k−11..k−11..k-1...

2018-05-16 11:29:38 646

原创 [BZOJ3669][NOI2014]魔法森林 LCT

把边按权值aaa从小到大插入,并维护权值bbb的最小生成树。具体地,如果link的一条边的两个端点已经联通,那么把这两个点路径上bbb最大的边cut掉。最后用111到nnn路径上bbb的最小值加上当前aaa更新答案。 注意到边权不太好维护,可以把每条边重开一个点,向两个端点连边。 代码:#include<iostream>#include<cstdio>#inc...

2018-05-04 21:33:44 193

原创 [JXOI2018]守卫 区间DP

题面 设fl,rfl,rf_{l,r}表示[l,r][l,r][l,r]的答案。 先考虑f1,nf1,nf_{1,n},那么nnn上必须放一个保镖,假设不能被nnn看到的是很多个区间[lk,rk][lk,rk][l_k,r_k],不难发现一个性质:[rk+2,n][rk+2,n][r_k+2,n]的任一位置是看不到[lk,rk][lk,rk][l_k,r_k]的任一位置的。所以rk,rk+1r...

2018-05-04 16:24:51 486

原创 [JXOI2018]游戏 线性筛

题面 我们定义不存在ddd使得d|x,L≤d,d≠xd|x,L≤d,d≠xd|x,L\le d,d\neq x的数xxx为好数。 那么对于一个排列ppp的t(p)t(p)t(p)显然是最后一个好数的出现位置。 线性筛求出好数个数mmm。 枚举最后一个好数的出现位置iii,那么满足的排列的个数有(i−1m−1)m!(n−m)!(i−1m−1)m!(n−m)!{i-1\choose m-1}m...

2018-05-04 16:11:55 305

原创 [JXOI2018]排序问题 二分

题面 考虑一个长度为nnn的序列Gobo Sort之后有序的期望尝试次数是n!a1!a2!...n!a1!a2!...\frac{n!}{a_1!a_2!...} 其中aiaia_i表示iii在序列中出现的次数。 那么就是我们可以把mmm分配给al,..,aral,..,ara_l,..,a_r ,使得∏ri=lai!∏i=lrai!\prod_{i=l}^r a_i!尽可能小。 注意到一...

2018-05-04 16:05:46 467

原创 多项式求逆&多项式开方

多项式求逆运用基于倍增的多项式求逆可以在O(nlogn)O(nlog⁡n)O(n\log n)时间内,对于一个nnn次多项式A(x)A(x)A(x)求出B(x)B(x)B(x)使得B(x)⋅A(x)=1B(x)⋅A(x)=1B(x)\cdot A(x)=1。 假设当前我们已经求出了在modxnmodxn\mod x^n意义下A(x)A(x)A(x)的逆B′(x)B′(x)B'(x),考虑...

2018-05-03 09:42:29 969 1

原创 JXOI2018游记

愿每一个努力的少年都能追逐到属于自己的梦想。Day 0 (4.27)因为江科太远,于是我们决定住过去。报道的时候碰到了赣州中学黑压压一片神犇,以及我校选手全部没带现金不知道如何报道。。。 我和QYQ分到一间房,后来把XG和lornd一起叫过来了,颓了一下午斗地主。 嗯,江科的食堂真好吃,就是穿着一身蓝出入感觉有点诡异。 晚上四个人在宾馆干了一些扰民的事。。。大概21:30...

2018-05-02 21:53:34 1117 1

原创 [GDOI2014]beyond 扩展KMP+并查集

题目等价于求给定两个长度都为nnn的串A,BA,BA,B,求一个最大的LLL使得A1..LA1..LA_{1..L}与B1..LB1..LB_{1..L}循环同构。 我们先对A,BA,BA,B互相做一遍扩展KMP,记Ai..nAi..nA_{i..n}与BBB的LCP为exaiexaiexa_i,exbexbexb同理。 循环同构一定是存在xxx,使得A1..x=BL−x+1..L ...

2018-04-25 15:56:29 254

原创 [BZOJ3670]动物园 扩展KMP

先用扩展KMP求出Si..nSi..nS_{i..n}与SSS的LCPnextinextinext_{i}。 考虑每个后缀Si..nSi..nS_{i..n}的所有前缀Si..kSi..kS_{i..k}对numknumknum_k的贡献,有贡献的kkk显然是在一个区间[i,min(2i−1,i+nexti)−1][i,min(2i−1,i+nexti)−1][i,\min(2i-1,i+ne...

2018-04-25 15:31:01 249

原创 扩展KMP

扩展KMP为了叙述方便,设S(i)S(i)S_{(i)}为串SSS从iii开始的后缀 扩展KMP可以在线性时间内求出对于一个文本串SSS的每一个后缀S(i)S(i)S_{(i)}与模板串TTT的最长公共前缀(LCP),我们设其为exiexiex_i。 假设我们已经知道了T(i)T(i)T_{(i)}与TTT的LCP,设为nextinextinext_i,考虑怎么求exiexiex_i。...

2018-04-25 11:11:53 323

原创 [BZOJ2983]reading 矩阵快速幂

首先不难列出一个O(n⋅262)O(n⋅262)O(n\cdot 26^2)的DP方程: 设fi,cfi,cf_{i,c}表示权值最多为iii,结尾字符为ccc的方案数,vx,yvx,yv_{x,y}为x,yx,yx,y的差异值,那么有 fi,c=1+∑fi−vc,d,dfi,c=1+∑fi−vc,d,df_{i,c}=1+\sum f_{i-v_{c,d} ,d} 注意到vx,y≤5vx,...

2018-04-24 09:10:15 174

原创 Miller-Rabin算法与Pollard's Rho算法总结

Miller-Rabin素数测试费马小定理:当ppp是素数时,对于a∈[1,p−1]a∈[1,p−1]a\in [1,p-1],满足 ap−1≡1(mod p)ap−1≡1(mod p)a^{p-1}\equiv 1 (mod \ p) 但是其逆命题是假命题,也就是说对于a∈[1,p−1]a∈[1,p−1]a\in [1,p-1],我们测试所有的ap−1ap...

2018-04-24 08:52:49 396

原创 [BZOJ2098]又是nand 树链剖分+位运算

观察nand这个运算,发现它有交换律但是没有结合律,所以就不要考虑各种差分或者分段计算合并的方法,而且得按顺序维护。 首先可以想到树链剖分,因为有顺序,所以线段树区间上要维护从lll到rrr的运算结果和从rrr到lll的运算结果,而且对于运算结果还与进来的初值有关,发现每一位是独立的,我们要对每一位维护初值是0/10/10/1,运算顺序是l→r/r→ll→r/r→ll\to r/r \to l的...

2018-04-22 22:13:42 599

原创 [2018雅礼省选集训3-30]path 平面图最短路最小割

根据题意,题目给定的图是一个平面图。如果把111号点到不了的点和到不了nnn号点的点及所连边删掉,那么图就大概是有一条111到nnn的链,然后还有一些边覆盖在上面,这样的话它的对偶图就大概是一棵树。 再考虑颜色限制怎么搞,假设xxx与其父亲的边在原图中代表边(u,v)(u,v)(u,v),那么xxx在TTT割就表示不选u+1,...,v−1u+1,...,v−1u+1,...,v-1这些点的颜色...

2018-04-16 22:20:18 392

原创 [2018雅礼省选集训3-30]program

注意到程序的运行是连续的,所以假设序列最左端左边还有一个>>>(且不能删除),那么一个区间子程序运行的过程一定时整个程序运行过程的一个子段。于是只需要用链表模拟一边总程序,再求出子段的开始和结束时间,直接用前缀和减一下即可。 设fifif_i表示指针第一次从i−1i−1i-1移动到iii的时间,gigig_i表示指针第一次从iii移动到i−1i−1i-1的时间,那么[l,r][l,r...

2018-04-16 16:51:07 351

原创 [2018雅礼省选集训3-30]table 递推

考虑第ppp行的每个数对询问fx,yfx,yf_{x,y}的贡献。 对于x>px>px>p,观察fi,j=afi−1,j+bfi−1,j−1,fi,j=afi−1,j+bfi−1,j−1,f_{i,j}=af_{i-1,j}+bf_{i-1,j-1},每个fp,ifp,if_{p,i}相当于向下走一步并×a×a\times a,或者向右下走一步并×b×b\times b,再给路径条数...

2018-04-16 16:37:28 354

原创 [2018雅礼省选集训3-25]bsh 分治最短路

因为是三角剖分,所以每一条对角线都把多边形分成两部分,于是考虑分治。 先找到一条把多边形分得比较均匀的对角线,对两个端点做一下bfs,处理掉起点和终点分别在这条对角线两侧的询问(分经过某个点或者经过这条边三种情况更新),然后继续分治直到三角形为止。 选对角线的时候直接选最远的即可。 代码:#include<iostream>#include<cstdio>...

2018-04-16 15:56:32 354

原创 [2018雅礼省选集训4-2]Problem A 位运算+势能分析线段树

首先把∧∧\land看成把某些位强制变为000,把∨∨\lor看成把某些位强制变为111。那么对于一次修改,如果一个区间内的数这些位都相同就打标记,否则暴力处理左右区间即可。 先证明这样做的复杂度是对的,设fi=flsoni+frsoni+∑20k=0[i中所有数第k位相等]fi=flsoni+frsoni+∑k=020[i中所有数第k位相等]f_i=f_{lson_i}+f_{rson_i}+...

2018-04-16 15:01:27 460

原创 [ARC063] F - すぬけ君の塗り絵 2 / Snuke's Coloring 2 单调栈+线段树

首先发现一定能找到一个最优解使得矩形的每条边要么是边界,要么有一个关键点,所以转化为求周长最大的内部不存在关键点的矩形。 不难发现选择一竖条或者一横条是一定合法的,那么答案下界就至少是2(max(h,w)+1)2(max(h,w)+1)2(\max(h,w)+1),那么最优解一定过x=w2x=w2x=\frac{w}{2}或者y=h2y=h2y=\frac{h}{2},因为在某个四分之一矩形内部...

2018-04-16 14:36:10 521

原创 [2018雅礼省选集训3-31]Max 期望DP

注意到mmm比较小,不妨状压mmm。 我们设fi,j,Sfi,j,Sf_{i,j,S}表示AiAiA_i用掉集合SSS中的操作后值为jjj的概率。 再设gi,j,Sgi,j,Sg_{i,j,S}表示A1..iA1..iA_{1..i}用掉集合SSS中的操作后最大值为jjj的概率,枚举AiAiA_i使用的操作集合转移即可。 复杂度O(nc2m23m)O(nc2m23m)O(nc^2m^23^m...

2018-04-15 19:53:12 280

原创 [BZOJ4555]求和 多项式求逆

设gn=∑ni=0{ni}2ii!gn=∑i=0n{ni}2ii!g_n=\sum_{i=0}^n \begin{Bmatrix} n\\i \end{Bmatrix}2^ii!,题目即求∑ni=0gi∑i=0ngi\sum_{i=0}^n g_i。 考虑gngng_n的组合意义,把nnn个元素放进iii个集合,这些集合有顺序之分,而且每个集合有两种状态,那么考虑枚举一个集合,gn=∑ni=12...

2018-04-09 21:09:29 240

原创 [2018雅礼3-27]subset 分类讨论+三维偏序+二维偏序

首先有个显然的结论,对于一个集合SSS,当ax,bx,cxax,bx,cxa_x,b_x,c_x均不为最大值时从SSS中删去xxx,那么|S|≤3|S|≤3|S|\le 3且一个SSS唯一对应一个答案。 我们先用O(nlog2n)O(nlog2⁡n)O(n\log ^2n)的三维偏序预处理出对于每个xxx,有多少个yyy满足ax>ay,bx>by,cx>cyax>ay,b...

2018-03-28 22:02:47 300

原创 [BZOJ4919]大根堆 启发式合并+线段树/multiset

先考虑O(n2)O(n2)O(n^2)的DP,设fi,jfi,jf_{i,j}表示考虑子树iii中,选的vvv的最大值≤j≤j\le j时最多能选多少个点,那么考虑一个点的转移。 先合并儿子:fi,j=∑x∈sonifx,jfi,j=∑x∈sonifx,jf_{i,j}=\sum_{x\in son_i} f_{x,j} 在选上他自己:chkmax(fi,≥vi,fi,vi−1+1)chkma...

2018-03-28 21:42:50 437

原创 [2018雅礼3-25]arg dp套dp

考虑求LIS的算法,我们有一个数组didi表示上升子序列长度为ii时最后一项的最小值,然后每加入一个值xx,就替换掉dd中第一个≥x≥x的值。于是我们可以用一个三进制状态表示这个dp(00表示还未选,11表示选了且在dd中,22表示选了但不在dd中),转移即可。 复杂度O(3n∗nlogn)O(3n∗nlog⁡n),实测把loewr_bound改成暴力扫的O(3n∗n2)O(3n∗n2)更快。。...

2018-03-28 21:25:52 268

原创 [BZOJ3600]没有人的算术 重量平衡树+线段树

先讲讲重量平衡树是什么,可以先看2013年国家集训队clj的论文。 重量平衡树首先要保证平衡而且不能是均摊平衡,然后要么没有旋转,要么旋转是影响的子树大小要期望loglog\log或者均摊loglog\log。Treap和替罪羊树都满足重量平衡树的条件。 那么对于这题,发现复杂度瓶颈在于比较两个数的大小(复杂度可能达到指数级),因为操作中出现的数的种类是O(n)O(n)O(n),我们希望能给每...

2018-03-14 21:13:21 436

原创 替罪羊树模板

替罪羊树要记一下几个东西:t:当前节点权值cvr:子树当前大小(包括删除的点)sz:子树中元素个数(不包括删除的点)ex:当前元素是否存在插入操作: 1. 插入一个数会导致一些其某些祖先满足要重构的条件,此时要取最浅的祖先直接重构。 2. insert要返回一个 tree ** 类型的东西,表示要重构的那个指针的地址。 3. 重构的时候(在travel)中要把已删除的点空间释...

2018-03-14 20:41:42 464

原创 Treap模板

#include<iostream>#include<cstring>#include<cstdio>using namespace std;int rd(){ static int seed=23333; return (seed=(66666ll*seed+66666ll)&2147483647);}int n;str...

2018-03-07 11:04:27 208

原创 [CF932]E - Team Work 第二类stirling数

还是那个用下降幂替换kkk次幂的套路。推式子: ∑i=1n(ni)ik=∑i=1n(ni)∑j=0k{nj}ij–∑i=1n(ni)ik=∑i=1n(ni)∑j=0k{nj}ij_\sum_{i=1}^n{n\choose i}i^k=\sum_{i=1}^n{n\choose i}\sum_{j=0}^k\begin{Bmatrix} n\\j \end{Bmatrix}i^{\underli...

2018-02-19 12:36:07 1473

原创 [BZOJ3512]DZY Loves Math IV 杜教筛+记忆化搜索

发现nnn只有=105=105=10^5,我们先考虑S(n,m)=∑mi=1φ(ni)S(n,m)=∑i=1mφ(ni)S(n,m)=\sum_{i=1}^m \varphi(ni)怎么求。 先把nnn分成两部分,n1=∏pin1=∏pin_1=\prod p_i,即所有质因子一次幂的乘积,n2=∏pci−1in2=∏pici−1n_2=\prod p_i^{c_i-1},即剩下的。不难发现φ(...

2018-02-19 12:22:01 348

原创 PKUWC2018游记

大概2017年12月份才知道5月份pkusc2017签的那个叫做省队一本。 当时感觉自己有学上了。。。 (pku大概是没考虑JX的水平然后给当时那么菜的我发省队一本。。。 本来是打算去thuwc的,然后怕毁约造成影响, 于是选wc的时候就选了pkuwc啦。Day-1(1.28): 长沙雪下的最大的一天(其实还很小),26日下的雪还没融完就又积了一层,结成冰的路面上又覆盖上浅浅的雪花,...

2018-02-05 22:12:31 4124 5

原创 [BZOJ4008][HNOI2015]亚瑟王 期望DP

记住,期望要倒着推。。。 考虑按一轮一轮DP,不免要记录之前轮发动了那些卡牌,这样就gg了。 所以考虑每一张卡牌的贡献,我们就只需要关心还剩多少轮没有发动卡牌,设fi,j" role="presentation" style="position: relative;">fi,jfi,jf_{i,j}表示当前考虑第i" role="presentation" style="position: r

2018-01-24 22:02:33 398

原创 [ARC062]F - Painting Graphs with AtCoDeer 双联通分量+Pólya计数

题面 把边分成三种: 1. 不在点双联通分量中,直接贡献K" role="presentation" style="position: relative;">KKK。 2. 在一个环中,记环长为n" role="presentation" style="position: relative;">nnn,根据Pólya定理,其贡献为(205)1|G|∑g∈GKc(g

2018-01-24 21:55:26 844

原创 [AGC005] F - Many Easy Problems 组合数学+快速数论变换

题面 首先一个联通块也是一棵树,点数=" role="presentation" style="position: relative;">===边数+1" role="presentation" style="position: relative;&am

2018-01-24 21:35:05 468

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除