自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [DP][拉格朗日插值][生成函数] SRM 629 Div1 Hard CandyDrawing

SolutionSolution题目的意思就是要求[xk]∏i=0n(ix+1)[x^k]\prod_{i=0}^n(ix+1) 设fn,k=[xk]∏ni=0(ix+1)f_{n,k}=[x^k]\prod_{i=0}^n(ix+1),则有fn,kfn,k−fn−1,k==fn−1,k+nfn−1,k−1nfn−1,k−1\begin{eqnarray}f_{n,k}&=&f_{n-1,k}+n

2017-12-30 15:22:58 384

原创 [状压DP][NTT] 2016 TCO Algorithm Algo Final - Division I, Level Three HamiltonianPaths

SolutionSolution好神的题~ 转化成某些边不能走。 考虑容斥,把题目转化为模板图中某些边必须要走。 记fef_e表示走了ee条不合法的路径的方案数。 那么可以得到模板图缩了这些路径以后剩下xx个点的方案数gxg_x nn个图放在一起就是卷积的形式。 用FFTFFT快速幂可以得到所有点放在一起剩xx个的点的方案数hxh_x。 然后容斥就可以通过hxh_x得到00对同类点在一

2017-12-28 14:26:27 378

原创 [最短路][DP][传递闭包] BZOJ 5109 && LOJ #6252. 「CodePlus 2017 11 月赛」大吉大利,晚上吃鸡!

SolutionSolution记fuf_u表示从SS到TT经过点uu的方案数。 这可以很简单的DP出来。 那么点对(A,B)(A,B)合法当且仅当fA+fB=fTf_A+f_B=f_TAA,BB无法互相到达。第一个用个表存,第二个按拓扑序做传递闭包就好了。 原来图会不连通 时间复杂度O(nlogn+nmw)O(n\log n+{nm\over w})#include <bits/st

2017-12-27 13:31:42 1127

原创 [状压DP][概率与期望][二分图] BZOJ 5006 && LOJ #2290. 「THUWC 2017」随机二分图

SolutionSolution好神的做法。 如果只有type=0type=0的话,直接状压DP就好了。 fS,Tf_{S,T}表示左边集合为SS,右边匹配的集合为TT的完备匹配的数量的期望。 而后面两种可以这么考虑把一组边拆掉。 type=1type=1的话拆成两条50%50\%可能出现的边和一组25%25\%同时出现的边(若重点是不可能同时选的)。 这样的话同时出现的概率为50%×50

2017-12-26 19:37:56 883

原创 [后缀自动机][LCT] BZOJ 2555: SubString

SolutionSolution出现的次数就是匹配到的点的righturight_u集合大小。 一个点的|rightu||right_u|有变化会对parentparent树上的祖先造成相应的改变。 因为这题强制在线,所以就用LCT维护|rightv||right_v|啦。#include <bits/stdc++.h>#define show(x) cerr << #x << " = " <

2017-12-23 20:43:08 275

原创 [后缀自动机][单调队列优化DP] BZOJ 2806: [Ctsc2012]Cheat

SolutionSolution对mm个串建立后缀自动机。 对nn个串单独考虑: 显然答案可以二分。 记pip_i表示这个串的ii位置可以在SAM上匹配到的最长长度。 考虑DP:fif_i表示考虑前ii个字符,最长熟悉字符串的长度。fi=max{fi−1,fj−j+i},L≤i−j≤pif_i=max\{f_{i-1},f_j-j+i\},L\le i-j\le p_i分析一下有贡献的区间j

2017-12-23 18:45:46 370

原创 [后缀自动机][树形DP] BZOJ 3238: [Ahoi2013]差异

SolutionSolution反串的后缀自动机就是原串的后缀树,在后缀树上树形DP即可。 maxumax_u即是点uu的深度,|rightu||right_u|即是点uu的子树大小。#include <bits/stdc++.h>using namespace std;const int N = 1010101;typedef long long ll;inline char get(voi

2017-12-23 10:52:11 286

原创 [后缀自动机][树形DP] BZOJ 4566: [Haoi2016]找相同字符

SolutionSolution又看了半天的SAM,感觉这次看陈老师的讲稿流畅多了。。 这道题的话,对AA串建自动机,BB串在上面匹配。 BB匹配到状态uu贡献就是|rightu|∗(len−minu+1)=|rightu|∗(len−maxparu)|right_u|*(len-min_u+1)=|right_u|*(len-max_{par_u})。 再考虑匹配到这个点的话,必然在pare

2017-12-22 20:48:12 339

原创 [数论][莫比乌斯反演] 51Nod 1222 最小公倍数计数

DescriptionDescriptionf(n)=∑i∑j[lcm(i,j)=n]f(n)=\sum_{i}\sum_{j}[lcm(i,j)=n]求∑n=abf(n)\sum_{n=a}^bf(n)SolutionSolutionS(n)=∑k=1n√μ(k)∑a∑b∑d[abd≤nk2]\begin{eqnarray}S(n)&=&\sum_{k=1}^{\sqrt{n}}\mu(k)\s

2017-12-22 13:21:03 300

原创 [数论][莫比乌斯反演][杜教筛] 51Nod 1220 约数之和

DescriptionDescription求∑i=1n∑i=1nd(ij)\sum_{i=1}^n\sum_{i=1}^nd(ij)SolutionSolution∑i=1n∑j=1nd(ij)A(n)B(n)S(n)=======∑i=1n∑j=1n∑a∣i∑b∣j[(a,b)=1]ajb∑k=1nμ(k)kA(⌊nk⌋)B(⌊nk⌋)∑a=1na⌊na⌋∑b=1n∑j=1⌊nb⌋j∑i=1n(

2017-12-21 17:16:24 308

原创 [数论][莫比乌斯反演][杜教筛] 51Nod 1238 最小公倍数之和 V3

DescriptionDescription求∑i=1n∑j=1nlcm(i,j)\sum_{i=1}^n\sum_{j=1}^nlcm(i,j) 推柿子:A(n)Ans========∑i=1nlcm(i,n)n∑d∣n∑i=1nid[(nd,id)=1]n∑d∣n∑i=1di[(d,i)=1]n∑d∣n[d=1]+dφ(d)2n2+12∑d∣ndφ(d)2∑i=1nA(i)−n(n+1)2∑i

2017-12-21 15:50:15 422

原创 [FWT][BlueStein Algorithm]CodeChef XORTREEH

SolutionSolution裸的多维FFT,用BlueSteinBlueStein算法。。把里面的复数域的变换,改成膜意义下的变换就好了。 因为这道题维数真的不高。。而且FNT复杂度比较大,所以直接暴力卷积了。。 所以就要打一个FWT一样的东西。 改了Hillan的模板~#include <bits/stdc++.h>using namespace std;const int MAXN

2017-12-21 14:27:14 413

原创 [数论][莫比乌斯反演][杜教筛] BZOJ 3512: DZY Loves Math IV

DescriptionDescription求∑i=1n∑j=1mφ(ij)\sum_{i=1}^n\sum_{j=1}^m\varphi(ij)SolutionSolution好强的题 设S(n,m)=∑i=1mφ(ni)S(n,m) =\sum_{i=1}^m\varphi(ni) 当|μ(n)|=1|\mu(n)|=1时φ(ni)=φ(i)∑d|(n,k)φ(nd)\begin{eqnar

2017-12-20 20:18:26 555

原创 [最大权闭合子图][最小割] BZOJ 4873:寿司餐厅

SolutionSolution对于(i,j)(i,j)新建一个点,点权为di,j−ai[i=j]d_{i,j}-a_i[i=j]。 就是一个最大权闭合子图的模型,最小割即可。 刚开始忘掉写当前弧优化了。。。#include <bits/stdc++.h>using namespace std;const int N = 211;const int INF = 1 << 28;inline

2017-12-20 12:48:46 214

原创 [最小割]SRM 590 div-1 Hard FoxAndCity

SolutionSolution类似于这个题。 FF表示falsefalse,TT表示truetrue。 建出这些点后,原图中的边(u,v)(u,v)就相当于限制|du−dv|≤1|d_u-d_v|\le1。 还有d1=0d_1=0。di≠0,i=2..nd_i\neq0,i=2..n。// BEGIN CUT HERE// END CUT HERE#line 5 "FoxAndCity

2017-12-18 18:18:30 449

原创 [最小割] BZOJ 3144: [Hnoi2013]切糕

SolutionSolution建立超级源汇,超级源连到切糕的顶部,切糕的底部连到超级汇,流量无穷大。 对于(x,y,∗)(x,y,*)从上到下连边,这里的边就相当于原来要切的点,标上流量。 如果不考虑f(x,y)−f(x′,y′)≤Df(x,y)-f(x',y')\le D的话,最小割就是答案。 那么可以这么连。 如果选取的点不在区间[z−D,z+D][z-D,z+D]里就会存在无穷大

2017-12-18 13:18:24 271

原创 [LP对偶][含正权环的最大费用流] SRM 676 div1 1000pts Farmville

SolutionSolutionLP对偶:⎧⎩⎨⎪⎪fi,j∑jfi,j≤=bi,j∑jfj,imaximize{∑fi,j×costi,j}\left\{ \begin{array}{ll}f_{i,j}&\le&b_{i,j}\\ \sum_jf_{i,j}&=&\sum_jf_{j,i}\\ \end{array}\right.\\maximize\{\sum f_{i,j}\times co

2017-12-16 13:32:02 452

原创 [链分治][FWT][树链剖分] BZOJ 4911: [Sdoi2017]切树游戏

SolutionSolutionDP是一个异或卷积的形式,可以FWT把O(128)O(128)的复杂度降下来。 链分治参考immortalCO的博客。 最后还是有些地方00的逆元的问题搞错了。。#include <bits/stdc++.h>using namespace std;const int N = 60303;const int M = 130;const int MOD = 1

2017-12-15 18:47:55 488

原创 [线段树][单调栈] BZOJ 4527 && CF 407E: K-D-Sequence

SolutionSolution可以把同余的串一起考虑,然后把所有数除以dd。变成公差为11的情况。 满足这样的条件MAXL≤i≤RAi−MINL≤i≤RAi−R≤k−LMAX_{L\le i\le R}A_i-MIN_{L\le i\le R}A_i-R\le k-L 从右往左,用单调栈维护最大值最小值的位置,在线段树上修改上述值就好了。 感觉自己好傻逼。 注意不能有重复的数出现的串。#i

2017-12-14 21:18:41 370

原创 [李超线段树] BZOJ 3165: [Heoi2013]Segment

SolutionSolution裸题。。。 刚开始求线段交点求错了,心态崩了#include <bits/stdc++.h>using namespace std;const double eps = 1e-10;const int N = 101010;const int M1 = 39989;const int M2 = 1000000000;typedef pair<int, in

2017-12-14 13:02:46 263

原创 [堆与斜率] BZOJ 4585: [Apio2016]烟火表演

SolutionSolutionH(x)=∑|x−wu|H(x)=\sum|x-w_u|这是一个凸包。并且在相近的两个点对(可以有重复)斜率相差11。 考虑如何从子树加入一条连向父亲的边,形成新的凸包H′H'。 设取到最小值的区间为[L,R][L,R]。H′(x)=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪H(x)+wH(L)+w−(x−L)H(L)H(L)+(x−R)−wx≤LL≤x≤L+wL+w≤x≤R+wR+

2017-12-13 19:52:30 783

原创 [堆与斜率] Codeforces 713C - Sonya and Problem Wihtout a Legend

DescriptionDescription给定一个序列,每次可以对一个数+1+1、−1-1,问最少的操作次数使得序列严格上升。SolutionSolution这里提供了一种O(nlogn)O(nlogn)的做法。 大概就是fif_i是一个斜率非正的单峰函数,要找到最值的位置就是斜率从−1-1变到00的时候。 fi(x)={MINY≤X|Ai−Y|MINY≤X(fi−1(Y)+|Ai−Y|)i=

2017-12-13 16:51:28 609

原创 [树形DP][状压DP] SRM599 950-point SimilarNames

DescriptionDescription输入nn个字符串,现在需要给它们从00到n−1n - 1标号,满足mm条形如 标号为aia_i的字符串是标号为bib_i的字符串的前缀的限制。求标号方案数,模109+710^9+7输出。 nn,字符串长度 ≤50,m≤8\le 50, m \le 8SolutionSolution首先把前缀关系转化为TrieTrie树上的父子关系。 只需要所有有限制的

2017-12-13 13:13:21 375

原创 [找规律] SRM599 Hard FindPolygons

DescriptionDescription找到一个边数最小的格点多边形使得周长等于LL,若有多解,要找到最长边和最短边相差最短的。SolutionSolution所有边为整数。L=2L=2无解。LL为奇数无解: 对于其中的一条边连接了两个点(x1,y1)(x_1,y_1)和(x2,y2)(x_2,y_2)。c2=(x1−x2)2+(y1−y2)2c^2=(x_1-x_2)^2+(y_1-

2017-12-13 12:56:22 360

原创 [NTT][斯特林数]BZOJ 5093: 图的价值

DescriptionDescriptionDescription一个带标号的图的价值定义为每个点度数的ppp次方的和。 给定nnn和ppp,请计算所有nnn个点的带标号的简单无向图的价值之和。SolutionSolutionSolution推式子: ansxpansS(p,k)=======n2(n−12)∑d=0n−1dp(n−1d)∑k=0pS(p,k)xk↓∑k=0pS...

2017-12-10 18:44:43 413

原创 [上下界有源汇最小费用可行流] BZOJ 3876: [Ahoi2014&Jsoi2014]支线剧情

DescriptionDescriptionJYY现在所玩的RPG游戏中,一共有NN个剧情点,由11到NN编号,第ii个剧情点可以根据JYY的不同的选择,而经过不同的支线剧情,前往KiK_i种不同的新的剧情点。当然如果为00,则说明i号剧情点是游戏的一个结局了。 JYY观看一个支线剧情需要一定的时间。JYY一开始处在11号剧情点,也就是游戏的开始。显然任何一个剧情点都是从11号剧情点可达的。此外,

2017-12-08 16:47:57 386

原创 [上下界有源汇最小流] BZOJ 2502: 清理雪道

DescriptionDescription滑雪场坐落在FJ省西北部的若干座山上。 从空中鸟瞰,滑雪场可以看作一个有向无环图,每条弧代表一个斜坡(即雪道),弧的方向代表斜坡下降的方向。 你的团队负责每周定时清理雪道。你们拥有一架直升飞机,每次飞行可以从总部带一个人降落到滑雪场的某个地点,然后再飞回总部。从降落的地点出发,这个人可以顺着斜坡向下滑行,并清理他所经过的雪道。 由于每次飞行的耗费是固

2017-12-07 20:16:35 422

原创 [点分树] BZOJ 4372: 烁烁的游戏

DescriptionDescription给定一颗nn个节点的树,边权均为11,初始树上没有皮皮鼠。 烁烁他每次会跳到一个节点uu,把周围与他距离不超过dd的节点各吸引出ww只皮皮鼠。皮皮鼠会被烁烁吸引,所以会一直待在节点上不动。 烁烁很好奇,在当前时刻,节点uu有多少个他的好朋友—皮皮鼠。 大意: 给一颗nn个节点的树,边权均为11,初始点权均为00,mm次操作: Q xQ~x:询问x

2017-12-07 12:39:37 1114

原创 [DP] BZOJ 4621: Tc605

DescriptionDescription最初你有一个长度为NN的数字序列AA。为了方便起见,序列AA是一个排列。 你可以操作最多KK次。 每一次操作你可以先选定一个AA的一个子串,然后将这个子串的数字全部变成原来这个子串的最大值。问最终有几种可能的数字序列。 答案对109+710^9+7取模。SolutionSolution这道题有一些DP状态设计的小技巧哦。。 这道题是计数问题,操作数

2017-12-01 18:50:37 320

空空如也

空空如也

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

TA关注的人

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