自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [算法竞赛] 几个随机化问题

算法竞赛的几个随机化问题

2023-09-07 22:46:10 151 1

原创 [HDU多校 第四场] Link with Level Editor II

号点,每次操作可以在当前图选择一条和当前点相连的边走向另一个点或者呆在该点,每次操作后都会从该世界传送到下一个世界对应点,在最后一个世界时恰好到达点。由于每个图的点数很小,求点之间的到达方案数是很容易想到用矩阵维护的,那么实际上对于每一个区间的check,就是求。的,略微有点爆,复杂度瓶颈在每次询问区间在线段树上需要矩阵乘,每次矩阵乘需要。的向量矩阵不断右乘线段树上的矩阵就可以了,向量乘矩阵的复杂度变成。的复杂度,于是用一个广为人知的优化,因为最后你只关心从。区间的转移矩阵积,那么这个做法的复杂度是。...

2022-08-08 16:30:26 250 1

原创 线段树合并讲解

考虑一个线段树在参与合并的过程中,这条单链上的点,只要已经被dfs过了,那么他就已经被加到另一个线段树的节点里去了(当然也可以是另外一个长得跟他相似的树被加到他这来了,效果相同),自己本身已经相当于被删除不会再被dfs到。其实这个优化非常简单,从上面两个题目我们也能看出来,很多时候你把子树的线段树合并起来以后,原本代表子树的那些节点就全都没用了,我们只需要把他们回收起来重复利用就可以,仔细想想,这样你每次合并完都会把没用的点存起来以后再用,那同时被利用的点是不是最多就是。是单个线段树的大小),这个。...

2022-07-14 23:00:17 498

原创 线段树维护斐波那契相关的东西

部分前置知识线段树维护区间等比数列加(比值固定):对于每个区间的懒标记,只需维护区间加的首项即可,由于比值固定,因此懒标记的下传和合并都很简单,下传就是左区间不动,右区间把右区间的首项算出来传下去;合并就直接相加即可。下传时计算当前区间的值只需要用等比数列求和公式往区间上加就行了。代码(待补充):维护斐波那契加与区间和题目:CF446C方法1:由于斐波那契数列有如下通项公式Fn=15[(1+52)n  −  (1−52)n]F_n=\frac{1}{\sqrt{5}}[(\frac{1+\sqr

2022-07-08 14:45:57 239

原创 主席树简单应用

众所周知,可持久化线段树(即主席树)的原理是利用之前已经建好的线段树节点来建新的线段树,从而达到节省空间的目的。下面来说说两个最经典的应用。静态区间第k大建可持久化权值线段树,利用前缀和的思想,在询问的时候只需要用val[r]-val[l]来判断往左儿子走还是右儿子走即可。利用主席树加上一个BIT可以做到动态区间第k大静态区间元素种类数建可持久化线段树,每一棵线段树上,对于每一种元素,保存到他最后出现的位置上(这样的思想以后还会经常运用),即加入新元素时,将他原来出现的位置-1,将新位置+1(这样就考

2022-06-30 11:57:40 148

原创 F. Unique Occurrences--Educational Codeforces Round 129 (Rated for Div. 2)

题意给定一棵树,每条边有权值,f(v,u)f(v,u)f(v,u) 表示vvv 和uuu 路径之间仅出现过一次的权值的数量,计算对于所有的点对,fff 的和。分析首先显然要将其转化为边对答案的贡献,考虑对于一个权值的所有边,其将树上的点分成了许多连通块,那么贡献就是相邻连通块的size乘积之和。做法一:考虑在DFS的过程中将各个连通块的size处理出来,将每个连通块深度最小的点当作这个连通块的表示点(假设为uuu),那么我们按照DFS序,在其向下DFS时,DFS到合法的各链上的深度最小的点时,就可

2022-05-24 21:37:39 197

原创 最少排序交换次数

给定数组A,BA,BA,B ,若两个数组的元素相同,一次操作可以将AAA 的两个元素交换,求将AAA变成BBB的最小交换次数。结论对含有nnn个元素的AAA数组 中的aia_iai​ ,若其出现在BBB的位置为jjj,则连一条边iii->jjj ,最终形成的有向图中有kkk个环,则最小交换次数为n−kn-kn−k 。例题:CF1672F1...

2022-04-28 21:24:31 643

原创 [数论分块/取整转换]2021浙江省赛 F

题目链接给定两个数 n,m<=108n,m<=10^8n,m<=108 ,请选择两个数 x,yx,yx,y ,使得 m+ym+ym+y 是 n−xn-xn−x 的倍数且 x+yx+yx+y 最小。输出 x+yx+yx+y 的最小值。前置知识:数论分块假设要计算∑x=1n⌊n/x⌋\sum_{x=1}^{n}\lfloor n/x \rfloor∑x=1n​⌊n/x⌋ ,将x的取值范围分为很多个块,每个块内答案相等,若某个块的答案为kkk,则该块的右端点为⌊n/k⌋\lfloor n

2022-04-28 21:03:57 281

原创 ICPC 昆明 单挑打铁记

深圳疫情到现在还没开学,szu甚至要到五月才有开学可能,本来都不打算打了,最后被学长批评了,只好单挑。前一天晚上只睡了4h,精神状态也不行,加上挺久没练,已经算是半摆烂了。开场乱看,过了一会发现K题有人过,于是稍微看了看,发现完全没什么思路,大概又看了30分钟后发现答案只能在n∗xn*xn∗x或n∗x+1n*x+1n∗x+1中取,但还是不知道怎么判断取哪个,又冥思苦想了半小时才猜了个规律上去AC了。。(第一道签到就预示了全场走势)然后看榜,过了几十个F和几十个D,先去看D了,发现是个construct

2022-04-18 16:16:55 245

原创 [因子背包] CF1647D Madoka and the Best School in Russia

由这次的D题从杜老师那学会的比较新奇的背包,我暂且将其命名为因子背包题意:一个数xxx被称为好数,当且仅当他被ddd整除而不被d2d^2d2整除。给定一个数nnn,问是否有超过两种组成方式,让它成为一个或若干个好数的乘积。TTT组询问,T<=100T<=100T<=100,n,d<=109n,d<=10^9n,d<=109Solution 1首先定然可以很暴力的将所有nnn的好数因子给找出来,我们需要的就是用这些数来构成nnn。由于一个数可以用若干次,所以其

2022-03-12 14:08:23 854 3

原创 一些后缀数组结论

1.在子串排序中相邻的一段子串一定为后缀排序中相邻的(一段后缀的前缀)比如某段后缀为bbcde,某子串为bbcd,那么比他字典序大一位的一定是bbcde2.要找出本质不同的子串,即要排除重复情况时,只需要将第i个后缀中前height[i]个子串去掉即可(与第i-1个后缀的公共前缀)。为什么不会出现第i个后缀和第i-2个后缀出现重复呢?很简单,因为后缀是已经排好序的。比如前两个后缀是abcd和abcef,你的下一个后缀一定字典序比abcef大,那么与abcd的公共前缀要么也是与abcef的公共前缀,要么

2022-03-11 18:37:24 317

原创 牛客数据结构专题课记录

第一章:前缀和与差分主要内容:高维前缀和(SOSDP)https://www.cnblogs.com/heyuhhh/p/11585358.html题目https://ac.nowcoder.com/acm/contest/19483/B题解https://blog.csdn.net/eternity19/article/details/119735293第二章:线段树基础主要内容:简单DDP构造矩阵优化DP并用线段树维护题目https://ac.nowcoder.com/acm/con

2022-03-07 16:56:43 126

原创 [AHOI2018初中组]球球的排列

题目看了半天题解终于大概会了容斥做法。。。前置知识:较好的组合数学能力容斥原理首先有一个简单的结论,当x∗yx*yx∗y和x∗zx*zx∗z为完全平方数时,显然y∗zy*zy∗z也为完全平方数。于是可以简单地通过O(n2)O(n^2)O(n2)暴力将这些球分块。问题转化为:已知nnn个球属于mmm个颜色,同种颜色小球不能相邻,问排列方案数。设f(s)f(s)f(s)为至少有sss对同色小球相邻时的方案数,则由容斥原理知ans=∑i=0nf(i)∗(−1)ians=\sum_{i=0}^nf(

2022-01-23 18:30:44 188

原创 基于双变量不等式的避免离散化的BIT维护方式

今日在做ICPC HK 2019 C题–Constructing Ranches时,题目要求在这样的式子上统计答案。sum[y]>2∗max(mx[x],mx[y])−sum[x]+ksum[y] > 2 * max(mx[x],mx[y]) -sum[x] + ksum[y]>2∗max(mx[x],mx[y])−sum[x]+k由于一对x,yx,yx,y只统计一遍答案,显然可以考虑对mxmxmx数组进行排序,最暴力的做法是直接将sumsumsum 和 mxmxmx 存在一个 pai

2021-11-03 14:18:39 174

原创 CF Round #744 div3 Solution

Promblemset前缀1579A.Casimir’s String Solitaire显然A和C的数量加起来等于B的数量时成立。B.Shifting Sort不需要minimize,只需要在n步内完成,容易想到每加入一个新的数字时就把前面sort好,也就是暴力往前找到前i−1i-1i−1个数字中小于a[i]a[i]a[i]的第一个数,然后将这一部分移动一下即可。C.Ticksnnn和mmm都超级小,直接暴力枚举每一个点然后往左上和右上冲即可。D.Productive Meeting容易猜

2021-09-29 15:50:12 152

原创 【训练】2018 ICPC Regional Nanjing

待学知识点:最小圆覆盖/最小球覆盖(三分、模拟退火)wqs二分*Pollard Rho字符串问题(KMP、exKMP、*PAM、SA、SAM)待复习知识点:KMP网络流A.Adrien and Austin签到。容易发现先手只要能把石头分成相同数量的两组就必胜,因为接下来可以复制对方操作。B.TournamentUnsolvedC.Cherry and ChocolateUnsolvedD.Country MeowUnsolvedE.Eva

2021-09-22 11:18:32 212

空空如也

空空如也

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

TA关注的人

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