自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jun

穷且益坚,不坠青云之志。

  • 博客(121)
  • 收藏
  • 关注

原创 一颗心,跳动在日月的韵律中

oi了半年,过了第一个不一样的寒假,在开学的前一天,抱着疑惑而沉重的心态,写下这篇总结。人啊,总有那么一些时候是惆怅的,而有一种人,惆怅是他的常态。做这样的一种人半年,总该写点什么了。每时每刻,想起初中时那一心文化课的意气风发,和现在的奋斗,总是不禁感慨世事的变化。 当时再怎么也不会想到,高中的自己,会穿着sszx校服,坐在机房里敲着代码吧。。是啊,没想到的事很多,想坚持的事也很多,只是现...

2019-02-20 23:04:57 319 1

原创 从 线段树维护区间最大子段和 浅谈 DDP 【程序设计竞赛】

题意:n≤1e5,m≤1e5n\le 1e5,m\le 1e5n≤1e5,m≤1e5,每次支持单点修改,求区间内的最大子段和(不能为空)引言相信用线段树维护左边最大,右边最大的分治做法大家都会,我们来思考一下DDP怎么做这个题。先列出dp方程,f[i][1]表示从1选到i,i必须选的产生的最大子段和,f[i][0]:i可以不选。f[i][1]表示从1选到i,i必须选的产生的最大子段和,f[...

2019-11-15 20:43:00 326

原创 OI考试中及平常练习里的一些低级错误总结

long long相关1,没开long long /long long开少了。具体地,可能是未对题目可能产生的数值预估,可能是只写了int的读优,忽略long long。2.#define int long long出锅。-1,比如在遍历图的时候,vector的返回值会出现问题,要强行转换(ll)。-2,main函数类型设置成signed ,避免出现long long main。3.爆...

2019-11-13 00:02:20 454

原创 [NOI2009]二叉查找树【区间dp+treap理解】

洛谷P1864SOL题目构造了一个权值不随机的非旋treap,我们可以思考替罪羊树的重构方式。(好像同时出现了三种平衡树。。。)我们模拟一下递归建树的过程。假如最后已经修改好了权值,我们按照数据值总小到大排序,得到一个序列。对于当前 区间 [l,r][l,r][l,r],在其中找到一个权值最小的点(设为第kkk个)作为根, 再对区间[l,k−1][l,k-1][l,k−1]和区间[k+1...

2019-11-07 11:43:55 171

原创 [SCOI2008]天平【差分约束+Floyd】

洛谷P2474SOL发现一道不板子的差分约束看到这个数据范围,我们可以想到一个暴力:枚举另外两个(记为C,DC,DC,D),判断是否满足A+B<C+DA+B\lt C+DA+B<C+D,A+B>C+DA+B\gt C+DA+B>C+D,A+B=C+DA+B =C+DA+B=C+D.转换一下,A−C>D−C ∣∣ A−D>C−BA-C...

2019-11-07 10:13:44 174

原创 [PKUWC 2018]Minimax 【线段树合并优化dp】

LOJ2537SOLdp式子:f[U][rank−j−inU]=f[V][rank−k−inV]∗(P∗∑i=1k−1f[V][i]+(1−P)∗∑i=k+1totVf[V][i])f[U][rank-j-inU]=f[V][rank-k-inV]*(P*\sum_{i=1}^{k-1} f[V][i]+(1-P)*\sum_{i=k+1}^{tot_V}f[V][i])f[U][rank...

2019-11-04 20:52:24 305 1

原创 [YNOI2019]游戏【概率dp+高斯消元】

P5415SOL对于我这样的“wen” “mang”,这题意可能有点太简略了。。参照了 @ i_m_a_大佬的题解才理解题意。。简述一下题意:每次选出序列的前4个,从中等概率产生一个赢家,留在原地,剩下三个按照原来的相对位置挪到序列末尾。依次循环,知道有一个人连续赢了m场,游戏结束。问初始序列中第k位置的人(我们称作目标点)连续赢m次的概率。用高斯消元求出概率dp方程式不难发现,我...

2019-11-04 19:18:18 230

原创 [SDOI2008]山贼集团【树上背包+状压】

洛谷P2465SOL比较经典的一类树上背包问题套一个子集状压枚举。注意到代价的计算与所选的点的集合有关,如果我们要统计代价需要状压记录点集,而数据范围非常配合的给了P≤12P\le12P≤12,直接状压当前子树包含的点集。从叶子向根dp,对于TTT个限制,预处理出每一个点集SSS所产生的收益,并把路径拆成一个一个点,在向根转移的时候分开算贡献,及将子树的贡献算出,只考虑当前这个点对应的点...

2019-11-04 09:11:37 135

原创 [ZJOI2019]语言 【线段树合并】

LOJ3046SOL转换一下题意,对于每一个点我们维护可以到达的集合SSS,ans=∑∣Si∣ans=\sum{|S_i|}ans=∑∣Si​∣。然后每次区间覆盖相当于向一条链上的每个点的集合,集体覆盖上一些点。有一个比较暴力的做法。对于每一个点,我们用一颗动态开点的线段树维护可以到达的点集,当前点的贡献就线段树的总长。对于每次操作,覆盖的点在一条链上,所以用树剖变成lognlogn...

2019-11-01 07:57:50 118

原创 [SDOI2019]热闹又尴尬的聚会

LOJ3113SOL对于题目的p,qp,qp,q的限制,我们可以转化成(p+1)(q+1)>n(p+1)(q+1)\gt n(p+1)(q+1)>n,q是求最大独立集,但是此题不是二分图,无法用网络流等方式。我们需要最大化地求p,qp,qp,q。构造方法先贪心地求出最大的ppp。不妨把“加点”的思路转化为“删点“,即已经有一个合法的图,我们考虑让它更大。删除度数最小的...

2019-10-31 19:24:11 135

原创 LOJ3057[HNOI2019]校园旅行【dp+优化建图】

LOJ3057SOL30pts从构造路径的角度思考,难以入手。总点数能实现O(n2)O(n^2)O(n2)算法,转换思路,从中间向两边接点,构造回文串。设f[i][j]f[i][j]f[i][j]表示i,ji,ji,j点对能否作为回文路径的两端。故枚举i,ji,ji,j的边尝试转移。不难发现这样做总复杂度是O(m2)O(m^2)O(m2)(每一对"边"最多被拿出两次)100pt...

2019-10-31 11:31:48 134

原创 NOIP2017 列队【动态开点线段树/平衡树】

洛谷P3960SOL据说正解离线+树状数组一眼思路就是模拟题目的过程。我们发现每次出队为:第xxx行向左挪,最后一列向前挪。所以开n+1n+1n+1个平衡树维护队列就好了。nnn个记录xxx行1−m−11-m-11−m−1列的信息,剩下一个记录最后一列的信息。每次修改取出P(x,y)P(x,y)P(x,y),取出P(x,m)P(x,m)P(x,m),把P(x,m)P(x,m)P(...

2019-10-27 21:41:05 215

原创 NOIP2017 宝藏 【状压dp】

P3959SOL不错的一道简单树论状压dp一句话题解:状压枚举每一层节点计算贡献,dp出答案。(或者深搜)说具体一点,发现贡献和深度有关,加上巨小无比的数据范围,我们可以记录前一颗树的节点和深度,枚举下一层地节点,把树一层一层地填出来。只需要预处理出 :把点集S1和S2连边的边权和最小值即可,顺便判一下合法性\text{把点集S1和S2连边的边权和最小值即可,顺便判一下合法...

2019-10-25 10:22:25 151

原创 P4426 [HNOI2018] 毒瘤 【虚树+dp / DDP】

P4426SOL敲了3小时虚树,突然发现这是一道ddp板题。。。看来最近和板子挺有缘的。。transfer the probelem:\text{transfer\ the\ probelem}:transfer the probelem:在有10条多余边的树上求点独立集个数。基于原树思考。先求出n−1n-1n−1条边的fff值。剩下的边最...

2019-10-24 22:14:56 152

原创 P4103 [HEOI2014]大工程【虚树】

洛谷SOL虚树板题一道。。。个人觉得这题比 “消耗战”更适合练板子(树形dp更为简单)说正解。注意到∑∣p∣≤2e6\sum |p|\le2e6∑∣p∣≤2e6,这提示我们建一颗虚树。建好后,2和3问就是求一个树上最短路,最长路,不再赘述。简单说一下1,我们对于每一条边统计有多少点对经过它。具体的,树形dp的时候算出,即为siz[son]∗(tot−siz[son)siz[son...

2019-10-23 21:59:32 120

原创 BZOJ1226 学校食堂 【状压dp】

WOJ2171SOL就当是复习一下状压dp吧理清楚过程。 相当于有一个最前面的没拿饭的人卡在那里,由于∀ bi≤7\forall \ b_i\le7∀ bi​≤7,我们可以状压最前面的人和他的后面777个人(一共8个人)吃饭没有。由于算代价需要前一个吃饭的人,我们再用题目性质,记录前一个吃饭的人和当前人的相对位置即可。(注意有负数,要整体位移)f[i][...

2019-10-23 20:30:33 85

原创 BZOJ2037 Sue的小球 【区间dp】

WOJ2039SOL区间dp得好好理解一下了。。我们注意到yyy坐标的限制是不存在的。minimize:Delta=∑t[i]∗v[i]minimize:Delta=\sum t[i]*v[i]minimize:Delta=∑t[i]∗v[i]考虑子问题,按xxx坐标排序后,一段点被走完后只会停在最左端或者最右端,再“扩展段长”不放设:f[0/1][i][j],表示i到j走...

2019-10-21 20:18:30 98

原创 P2114 [NOI2014]起床困难综合症 【dp】

P2114SOL休闲娱乐玩dp。关于解法,读完题目后写代码就行了。一道有质量的洛谷蓝题CODE#include<bits/stdc++.h>using namespace std;#define sf scanf#define pf printf#define ll long long#define cs const#define db double#de...

2019-10-21 15:15:34 108

原创 P2150 [NOI2015]寿司晚宴【状压dp】

洛谷P2150SOL两两互质:对于同一个质因数的倍数不能选在同一集合内。状压A,BA,BA,B所选的集合的质因数情况。即为f[S1][S2]f[S_1][S_2]f[S1​][S2​]。预处理出每一个数包含的质因数,也是状压。枚举当前数选在 A或B或不选。{f[i][S1∣k][S2]+=f[i−1][S1][S2]f[i][S1∣k][S2]+=f[i−1][S1][S2]...

2019-10-21 15:11:34 142

原创 图的存储

1.邻接表: (前向星) 不开O2O_2O2​快一点。可以实现正反边(cntcntcnt从1开始)2.vectorvectorvector,有边权我用结构体 ~~~,开O2O_2O2​快一些。

2019-10-21 08:04:23 92

原创 2-SAT

Definationk-SAT问题 :通俗的可以理解为, 对于nnn个集合,每个集合有kkk个元素,集合内元素只能有一个为111,集合的元素间有限制。-类型: NP2-SAT:[k==2][k==2][k==2],类型:PAlgorithm1.对每个iii,有i0,i1i_0,i_1i0​,i1​,表示iii选0或1。2.题目的限制(i,ji,ji,j至少一个为1,i,ji,ji...

2019-10-21 08:04:16 214

原创 最短路

Defination对于一个图(管他是有向图,无向图,管他有没有环,管他边权为负与否),没有负环.dis[i][j]dis[i][j]dis[i][j]表示iii出发,到jjj最短路,满足dis[i][v]≤dis[i][u]+w[u,v]dis[i][v]\le dis[i][u]+w[u,v]dis[i][v]≤dis[i][u]+w[u,v]Algorithm总结一下各...

2019-10-21 08:03:57 117

原创 最小生成树

Defination给一个无向连通图,生成一颗边权和最小的树Algorithm

2019-10-21 08:03:45 103

原创 图论总结

1.图论基础2.最短路3.最小生成树4.2-SAT

2019-10-20 23:22:36 132

原创 LOJ6041雅礼集训 决斗 【贪心】

LOJ6047SOL首先环其实是不存在的。。-重复的会向右边挤,但最后n个都可以一一对应,至少有一条边没有“人员流动”。我们设sumi=∑j=1ideg[j]−1sum_i=\sum_{j=1}^i deg[j]-1sumi​=∑j=1i​deg[j]−1,sumsumsum最小的一个点kkk和下一个点k+1k+1k+1之间没有“人员流动”。从k+1k+1k+1开始,用set维护...

2019-10-18 14:24:50 194

原创 P2536 [AHOI2005]病毒检测 【LCS型dp】

洛谷P2536SOL在ac自动机上,用 fft实现通配符区间匹配?还是别折腾了。咱先看看数据范围:len≤500,n<500len\le500,n\lt 500len≤500,n<500,这是啥?一个个匹配就行了。。。思考一下我们刚学dp时的LCSLCSLCS问题,即longest common sequencelongest\ common\...

2019-10-16 15:58:49 140

原创 BZOJ3881 [Coci2015]Divljak 【AC自动机+树上差分】

darkSOL类似于阿狸的打字机? 只是这道题需要一个路径并。具体的,对Alice的串建出ac自动机,每次拿新加入的BobBobBob串在上面跑匹配,把所有经过点拿出来,在failfailfail树上给到根的路径打+1+1+1标记。但是多次出现算作一次,所以做一个路径并就可以了。即给点按照failfailfail树上的dfsdfsdfs序排序,在相邻两个点的lcalcalca处减掉...

2019-10-16 14:19:54 112

原创 LOJ2564 SDOI2018 原题识别【主席树+随机化分析】

loj2564SOL有两个操作,1.树上区间数颜色 2.树上n2n^2n2版的操作1。- 先放在序列上。操作1:对于每一种颜色,只在其在区间的第一次出现位置统计。我们求出每一个位置对应的颜色的前一次出现位置(记为preprepre)(第一次就是000),放在主席树中即可。操作2,计算每一个点被多少区间访问到。-对于 (A,B](A,B](A,B]之间的点ppp,首先 pre...

2019-10-16 07:49:27 127

原创 BZOJ3674 可持久化并查集【主席树+并查集】

BZOJSOL可持久化并查集?难道可持久化非旋treap维护并查集森林?其实没那么麻烦。。可以看做是主席树的应用。从代码的角度思考并查集,我们只需要可持久化 fafafa数组即可。这里不进行路径压缩(版本太多,感觉压缩了实测效果也不是那么理想)所以要按秩合并,再用主席树维护一个depdepdep数组即可。CODE/*********************************...

2019-10-14 19:32:12 118

原创 BZOJ2989 数列【cdq分治】

darkbzojSOL据说可以对修改二进制分组+主席树在线做? 学学吧。。。先把曼达顿距离转化成切尔雪夫距离,即:∣x1−x2∣+∣y1−y2∣≤k|x_1-x_2|+|y_1-y_2|\le k∣x1​−x2​∣+∣y1​−y2​∣≤k 转化为 max(∣x1′−x2′∣,∣y1′−y2′∣)≤kmax(|x_1'-x_2'|,|y_1'-y_2'|)\le kmax(∣x...

2019-10-14 18:24:05 192

原创 BZOJ2653 middle 【主席树+二分】

BZOJSOL无法确定中位数 ? 我们可以考虑转化思路。二分一个中位数,再判断是否合理。根据本题中中位数的定义,只需要小于 它的 数的个数≤∣len2∣\le |{len \over2}|≤∣2len​∣。我们可以将大于iii的数赋值成111,小于的赋值成−1-1−1。若maxLsum[a,b−1]+sum[b,c]+maxRsum[c+1,d]≥0若maxLsum[a,b-1]+s...

2019-10-14 16:49:52 77

原创 BZOJ3339 Rmq Problem【离线/可持久化数据结构】

DarkbzojSOL法一:维护每一个值在原序列的最右出现位置的最小值,对于二分的左半部分,如果最小值大于等于当前左端点,说明已满。用主席树排除右端点超出qr的影响。在主席树上二分法二:增量法思想。 从[l,r] 到[l+1,r],只有a[l]可能能够拿来更新一段区间的mex,写一个以左端点为第一维的支持区间修改min,单点查询(可持久化标记)的主席树。(也可以离线,用线段树做)...

2019-10-14 16:28:52 136

原创 【LOJ575】「LibreOJ NOI Round #2」不等关系 【容斥+分治NTT】

LOJ575SOL1,将原序列看成一段一段的连续的小于符号的区间(数字单增)。2,不考虑大于符号,方案数为n!∏leni!{n!\over \prod len_i!}∏leni​!n!​;3,加入大于符号的影响。设f[i]:前i个元素的合法序列的方案数f[i]:前i个元素的合法序列的方案数f[i]:前i个元素的合法序列的方案数从最近的一段单增区间枚举,即枚举最近的大于符号的位置,...

2019-10-11 20:54:48 465

原创 P5331[SNOI2019]通信【费用流+优化建图】

题面SOL首先去确定用费用流求解。对于每一个点的贡献,只和向谁连边有关,和后面的点无关。所以把每个点拆成 入点,出点。1.将S和入点连边,cap=1,w=0cap=1,w=0cap=1,w=02.入点和T连一边,cap=1,w=Wcap=1,w=Wcap=1,w=W3.出点和T连边:cap=1,w=0cap=1,w=0cap=1,w=04.入点和前i−1i-1i−1个点的出点连...

2019-10-10 12:07:02 302 1

原创 P3703 [SDOI2017] 树点涂色 【LCT+dfs序+线段树】

题面SOL维护颜色集合? 树上莫队?好像做不了3操作,只有30分。。。仔细思考op1op1op1,若进行链修改,相当于把xxx到根路径拼成了一段,一开始点iii到根的权值为dep[i]dep[i]dep[i],相当于每一个点都是独立的一段。那么点到根的权值就是该路径上的 “总段数”。但是我们还是不能快速处理op1op1op1。思考LCTLCTLCT的accessaccessaccess,...

2019-10-04 21:04:03 120 1

原创 loj2552 [CTSC2018] 假面 【概率dp】

题面SOL做法貌似挺多? (比如多项式)比较水的 一道模拟型的概率dp;首先我们read the problemread\ the\ problemread the problem,然后make a draftmake\ a\ draftmake a draft,然后ACACAC。其实中间背包dp的...

2019-09-29 18:36:12 138

原创 P2056 [ZJOI2007] 捉迷藏 【动态点分治】

题面SOL树的直径? 如果有 ∣S∣≤1e6|S|\le1e6∣S∣≤1e6 之类的,说不定可以虚树做。然鹅并没有。另一种O(nlogn)O(nlogn)O(nlogn)讨论完树中所有路径的做法当然是点分治了。只是此题需要支持修改,于是记录一下点分治时候的fafafa,每个分治重心维护一个数据结构,我们便有了一个O(nlogn+mlog2n)O(nlogn+mlog^2n)O(nlogn...

2019-09-29 14:53:30 143

原创 Loj3087 [GXOI / GZOI2019] 旅行者 【最短路扩展】

题面SOL法一 :二进制分组 O(mlog2n)O(mlog^2n)O(mlog2n)预计得分:50-60按二进制每一位 0/1 将特殊点分成两组,一组跑最短路,一组统计。一次的答案为两组之间的最小值。由于任意两个不同的数,二进制总有一位不同,所以总有一个分组方式能够将两个特殊点分开。法二: 两次最短路+染色 O(mlogn)O(mlogn)O(mlogn)预计得分:100把特殊...

2019-09-25 19:12:23 132

原创 [SHOI2012]随机树 洛谷P3803 【期望dp】

题面SOL分两个问题讨论;Q1 :显然的期望dp定义式 :f[i]:第i步的期望平均叶子深度f[i]:第i步的期望平均叶子深度f[i]:第i步的期望平均叶子深度,转移方程: f[i]=f[i−1]∗(i−1)+f[i−1]+2i,−>f[i]=f[i−1]+2i.{f[i]={f[i-1]*(i-1)+f[i-1]+2}\over{i}},->f[i]=f[i-1]+{2\o...

2019-09-22 21:41:59 162 1

原创 bzoj2400 Optimal Marks 【最小割】

darkSOL1.异或运算按位分开。2.0/1,想办法转化为最小割问题。 可以看做把点分为两个0/1集合,如果有 一条路径两端有确定的点,中间必定会产生"1"的代价,相当于割开此边的代价。3.建图,<u,v>=add(u,v,1),add(v,u,1)<u,v>=add(u,v,1),add(v,u,1)<u,v>=add(u,v,1),add(v,u...

2019-09-17 20:43:04 119

空空如也

空空如也

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

TA关注的人

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