
差分
文章平均质量分 67
QuantAsk
蒟蒻OIer
展开
-
loj#2788-「CEOI2015 Day1」管道【树上差分】
但是我们不能离线建生成树,因为我们存不下所有的边,考虑一下别的方向的优化。我们会发现对于非树边来说,如果这一条非树边能被其他非树边完全覆盖,那么说明这条边就没有用,所以我们对于非树边来说也只需要保留一棵最小生成树即可。一个朴素的想法是我们搞出一棵生成树来,然后对于非树边。路径上的边都标记成非割边,然后剩下的就是割边了。然后至于标记方面用树上差分来处理就好了。条边的一张图,求它的所有割边。我们存不下所有的边,但是。...原创 2022-08-11 18:38:53 · 311 阅读 · 0 评论 -
CF516D-Drazil and Morning Exercise【树上差分,倍增】
题目链接:https://www.luogu.com.cn/problem/CF516D给出一棵nnn个点的树,定义f(x)f(x)f(x)表示距离点xxx最远的点的距离,qqq次询问给出一个kkk,要求一个最大的连通块满足连通块中所有点的f(x)f(x)f(x)最大最小差值不能超过kkk。1≤n≤105,1≤q≤501\leq n\leq 10^5,1\leq q\leq 501≤n≤105,1≤q≤50我们找到f(x)f(x)f(x)最小的点作为根,那么肯定有每一个点的f(x)f(x)f(x)都不小于其原创 2022-07-12 12:15:56 · 186 阅读 · 0 评论 -
P7962-[NOIP2021]方差【dp,差分】
正题题目链接:https://www.luogu.com.cn/problem/P7962题目大意给出一个长度为nnn的序列aaa,你每次可以让一个ai(1<i<n)=ai−1+ai+1−aia_i(1<i<n)=a_{i-1}+a_{i+1}-a_iai(1<i<n)=ai−1+ai+1−ai,求能变出的最小方差。1≤n≤400,1≤ai≤6001\leq n\leq 400,1\leq a_i\leq 6001≤n≤400,1≤ai≤600或1≤n原创 2021-11-22 17:03:55 · 798 阅读 · 0 评论 -
AT2005-[AGC003E]Sequential operations on Sequence【差分,思维】
正题题目链接:https://www.luogu.com.cn/problem/AT2005题目大意开始有一个1∼n1\sim n1∼n依次排列的序列,然后QQQ次,第iii次把序列长度变为aia_iai,不足的从前往后循环填充。求最后每个数字的出现次数。1≤n,q≤105,1≤ai≤10181\leq n,q\leq 10^5,1\leq a_i\leq 10^{18}1≤n,q≤105,1≤ai≤1018解题思路首先肯定是先搞出一个单调栈来,然后考虑每次复制重复的部分。考虑第ii原创 2021-10-25 20:40:45 · 159 阅读 · 0 评论 -
P1852-跳跳棋【思维,差分,二分】
正题题目链接:https://www.luogu.com.cn/problem/P1852题目大意一个数轴上有333个跳棋,你每次可以将一个跳棋跳到另一个跳棋对称的位置,但是不能一次跨过两个棋子。给出初始状态,和目标状态,求最小步数。坐标的绝对值不超过10910^9109解题思路首先排序+差分一下记为a,b,ca,b,ca,b,c,然后四种跳法操作模拟一下发现是(a,b,c)→(a,b+c,c)(a,b,c)\rightarrow (a,b+c,c)(a,b,c)→(a,b+c,c)(原创 2021-10-14 14:26:52 · 171 阅读 · 0 评论 -
CF19E-Fairy【树形结构,差分】
正题题目链接:https://www.luogu.com.cn/problem/CF19E题目大意给出nnn个点mmm条边的一张无向图,求有多少条边去掉后可以使得图变成一张二分图。1≤n,m≤1041\leq n,m\leq 10^41≤n,m≤104解题思路虽然线段树分治可以暴力草过去但是考虑点智慧的做法。众所周知没有奇环是图是二分图的充要条件,所以答案就是奇环的交。显然无法考虑所有的奇环,但是我们可以考虑一下简单奇环。先随便跑出一个生成树,然后枚举所有非树边考虑其在树上的环,只考虑原创 2021-08-24 11:27:41 · 178 阅读 · 0 评论 -
AT2164-[AGC006C]Rabbit Exercise【差分,倍增,数学期望】
正题题目链接:https://www.luogu.com.cn/problem/AT2164题目大意nnn只兔子编号为1∼n1\sim n1∼n,第iii只在坐标轴xix_ixi处。然后mmm次跳跃,每次给出aia_iai,编号为aia_iai的兔子会等概率的选取ai−1a_{i-1}ai−1和ai+1a_{i+1}ai+1跳跃到对称位置。进行kkk轮,求最后每只兔子的期望位置。3≤n≤105,1≤m≤105,1≤k≤10183\leq n\leq 10^5,1\leq m\leq 10原创 2021-03-04 21:12:23 · 207 阅读 · 1 评论 -
jzoj5698-[gdoi2018day1]密码锁【贪心,差分】
正题题目大意nnn个数字,每次可以让一个区间加或减111。然后数字是一个[0,m−1][0,m-1][0,m−1]的循环,求最少次数让所有数字变成000解题思路我们做一个%m\%m%m意义下的差分数组之后问题就变成了选择两个位置一增一减使得所有的变成000。那么我们可以将整个差分数列划分为两部分,一部分往mmm走一部分往000走,我们从小到大排序后枚举分割位置即可。时间复杂度O(nlogn)O(n\log n)O(nlogn)codecodecode#include<cstdi原创 2020-11-20 22:33:03 · 224 阅读 · 0 评论 -
P3708-koishi的数学题【差分】
正题题目链接:https://www.luogu.com.cn/problem/P3708题目大意定义f(x)=∑i=1nx%if(x)=\sum_{i=1}^nx\% if(x)=∑i=1nx%i求每个f(i)f(i)f(i)解题思路考虑枚举模数iii,对与每个xxx会产生x%ix\% ix%i的贡献,也就是对与连续的一段是0,1,2,3,...i−10,1,2,3,...i-10,1,2,3,...i−1的贡献,赋值的是一个等差数列所以两边差分即可。时间复杂度O(nlogn)O(n原创 2020-10-25 20:40:19 · 203 阅读 · 0 评论 -
P4552-[Poetize6]IncDec Sequence【差分】
正题题目链接:https://www.luogu.com.cn/problem/P4552题目大意给出nnn个数,每次可以选择一个区间加一或减一,求最少操作使得所有数相等,并且求可能的最终序列个数。解题思路在差分数组上操作,那么操作变为将差分数组上一个数+1+1+1且一个数−1-1−1(当然当l=1l=1l=1或r=nr=nr=n时就是只改变一个数)。所以最少操作数就是正数的和和负数的绝对值和的最大值。序列种数,假设正数和zzz大于负数和fff,那么其实对于f∼zf\sim zf∼z这个范围原创 2020-10-06 11:04:17 · 189 阅读 · 0 评论 -
CF1110E-Magic Stones【结论题,差分】
正题题目链接:https://www.luogu.com.cn/problem/CF1110E题目大意给出一个序列cic_ici和一个序列tit_iti。每次操作可以将ci=ci−1+ci+1−ci(1<i<ns)c_i=c_{i-1}+c_{i+1}-c_i(1<i<ns)ci=ci−1+ci+1−ci(1<i<ns)解题思路首先要求c1=t1,cn=tnc_1=t_1,c_n=t_nc1=t1,cn=tn如果将一个位置修改,我们发现原创 2020-09-23 20:16:50 · 215 阅读 · 4 评论 -
nssl1467-U【差分】
正题题目大意n∗nn*nn∗n的矩阵,每次让一个下三角形内数字加上一定权值。求最后所有位置的异或和解题思路我们发现如果我们对于没行做前缀和的话,我们需要修改的位置就是一个竖直下去的一列和斜着的一条,所以我们可以分别对于竖着的和斜着的做一次差分,我们就可以求出该矩形的差分codecodecode#include<cstdio>#include<cstring>#include<algorithm>#include<map>#define原创 2020-08-12 18:33:34 · 168 阅读 · 0 评论 -
nssl1259-sequence【组合数,差分】
正题题目大意操作(l,r,k)(l,r,k)(l,r,k)表示l∼rl\sim rl∼r这段区间,对于每个iii,加上Cki+k−lC_k^{i+k-l}Cki+k−l解题思路我们可以发现对于一个全是1的序列,求kkk次前缀和,就是杨辉三角的第k+1k+1k+1列,那么对于次修改,我们用k阶差分修改。最后取kkk次前缀和code#include<cstdio>#...原创 2018-11-01 07:56:20 · 300 阅读 · 0 评论 -
jzoj3913-艰难的选择【差分,统计】
正题题目大意一个01串,求最长的子串使得0和1都相等。解题思路维护差分数组zzz,vi=xv_i=xvi=x表示iii最早出现在差分数组的那个数字。枚举尾部,用viv_ivicodecodecode#include<cstdio>#include<algorithm>#include<cstring>#define N 100010...原创 2019-01-24 11:50:20 · 385 阅读 · 0 评论 -
jzoj4209-已经没有什么好害怕的了【差分】
正题题目大意ansians_iansi表示包含字符iii的括号匹配子串个数求∑i=1n(ansi∗imod&ThinSpace;&ThinSpace;(1e9+7))\sum_{i=1}^n(ans_i*i\mod (1e9+7))i=1∑n(ansi∗imod(1e9+7))解题思路计算出每个匹配括号的前一个括号位置和后一个括号位置。一个差分数组先计算加的...原创 2019-01-21 16:21:18 · 288 阅读 · 0 评论 -
P4231-三步必杀【差分】
正题题目大意修改[L..R][L..R][L..R]加上[S..E][S..E][S..E]的等差数列,求最终答案。题目大意很明显的差分。aia_iai为原数组,bib_ibi为一阶差分数组,cic_ici为二阶差分数组ax=ax+s+(x−l)∗k(x∈[l..r])a_x=a_x+s+(x-l)*k(x\in[l..r])ax=ax+s+(x−l)∗k(x∈[l..r...原创 2019-01-28 22:19:46 · 296 阅读 · 1 评论 -
jzoj4788-[NOIP2016提高A组模拟9.17]序列【差分,贪心】
正题题目大意一个序列AAA可以每次选择一段区间(Ai+1)%4(i∈[l..r])(A_{i}+1)\%4(i\in [l..r])(Ai+1)%4(i∈[l..r])。求最少次数使其变成BBB序列。解题思路先计算出每个数字最少加多少可以变成目标数字记录入aaa数组。然后若不考虑一个数要取模多次的话答案就是∑i=2nmax{ai−ai−1,0}\sum_{i=2}^n \max...原创 2019-05-25 14:26:25 · 263 阅读 · 0 评论 -
P1600-天天爱跑步【LCA,桶,树上差分】
正题题目链接:https://www.luogu.org/problemnew/show/P1600题目大意一棵nnn个点的树,通过每条边需要时间为1。有mmm个玩家从SiS_iSi跑到TiT_iTi(不停留,跑完之后马上消失)。然后对于第iii个点求第wiw_iwi刻停留在改点的玩家数量。解题思路对于每条路径我们拆分成两段,算是树上差分的一个变形自S−>lc...原创 2019-07-24 18:35:33 · 257 阅读 · 1 评论 -
nssl1351-矩形反色【离散,差分】
正题题目大意对一个全白矩阵每次选择一个矩阵颜色取反。然后求最后所有黑色联通块的周长之和。解题思路因为是算周长,所以我们将一个矩阵拆分成4条边,然后将横竖分开处理。若处理横的边,我们按照xxx为关键字排序。然后对于xxx不同的边分开处理,那么一行最多NNN个点,我们先将这些点离散化。我们发现一条被覆盖了奇数次的边才会被统计入答案,所以我们可以用一个差分数组维护计算一条边经过了多少...原创 2019-08-06 15:47:40 · 237 阅读 · 0 评论 -
jzoj1295-设计【差分约束系统,最短路】
前言比赛时有想到是最短路,可是觉得自己的是错的就没做qwq正题大意有n头牛,坐标分别为s1,s2,s3...sns1,s2,s3...sns_1,s_2,s_3...s_n,保证si⩽si+1si⩽si+1s_i\leqslant s_{i+1}。有mlmlml个要求是第aaa头牛和第bbb头牛距离不能超过DDD,然后有mrmrmr个要求是第aaa头牛和第bbb头牛距离...原创 2018-07-11 21:41:48 · 326 阅读 · 0 评论