差分
小菜鸡加油
菜鸡
什么都能折磨
展开
-
D. A Game with Traps(贪心+二分+差分模拟)
https://codeforces.com/contest/1260/problem/D思路:二分后对于答案要拆的区间是要+3(过去回来再带走)剩下的就是走1次#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set>#include<原创 2021-04-19 16:29:00 · 97 阅读 · 0 评论 -
E. Monotonic Renumeration(思维+区间合并+细节)
https://codeforces.com/problemset/problem/1102/E思路:模拟发现肯定是单调不减的序列。且相同颜色的一块最后要合成一整块相同的算其贡献。开始自己map+差分搞有地方理解错误,而且自己的处理对于1个长度的区间不好处理。所以处理时转化成对0的位置++,对于一个区间的位置我们不必给他记录差分,对于一个区间我们记录[l+1]++,[r+1]--就好。#include<iostream>#include<vector>#includ原创 2021-03-28 19:20:34 · 152 阅读 · 0 评论 -
C. Covered Points Count(思维+差分)
https://codeforces.com/problemset/problem/1000/C思路:值域较大,差分扫一遍不允许。需要离散化后差分。对线段端点进行差分。遍历map就可以获得当前到lastpos(边扫边维护)区间内的点的覆盖次数。长度相减即可。#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#in.原创 2021-03-25 11:38:25 · 193 阅读 · 1 评论 -
1132C - Painting the Fence(思维+差分)
https://codeforces.com/problemset/problem/1132/C思路:可以发现n^2枚举。对于去除第一个人后序列的状态,可以O1用差分修改出来。然后On累加。去除第二个人后序列的答案怎么算。可以发现去除第二个人后对其所在的[l,r]区间内还剩涂了一次的状态去除掉就好了。所以前缀和统计一下只有一个覆盖情况的。差分维护好扫一遍处理好前缀,然后On枚举。#include<iostream>#include<vector>#inclu原创 2021-03-25 11:03:08 · 94 阅读 · 0 评论 -
C. Present(思维+二分+差分/线段树/树状数组)
https://codeforces.com/problemset/problem/460/C思路:考虑维护到i时候,i前面的已经维护好了,因此对其后面进行区间的加减由于每个数如果没有>=x,就要添加,同时给后面区间++。差分的过程中对单纯的下一个已更新的值可以边扫边维护。当然也可以树状数组/线段树维护区间和以及单点查询强行1e16爆ll了。换成了128#include<iostream>#include<vector>#include<qu原创 2021-03-17 19:30:49 · 151 阅读 · 0 评论 -
C. Pekora and Trampoline(思维+贡献法/差分优化区间加减)
https://codeforces.com/contest/1491/problem/C思路:枚举每个位置对后面的位置的贡献。因此需要开一个t数组维护一下。对于x这个位置来说,会对后面的位置{x+2....min(x+Sx,n)}产生+1对于x+1存在细节的谈判。对于上述操作做完之后,如果当前tx>=sx,说明这个经过这个点的次数有多余,但是此时经过这个点只能对x+1产生贡献。注意把刚才的+1加回去。最后再累加扫一遍。优化的话就对这个位置的+1上差分数组维护。O(n^原创 2021-03-02 10:44:51 · 308 阅读 · 0 评论 -
石子游戏(思维+差分)
https://ac.nowcoder.com/acm/contest/9985/D题意:叶妹妹很喜欢玩石头,于是这天泽鸽鸽给她出了一道石子游戏,规则是这样的:有n堆石子排成一行,其中第i堆石子有ai个,叶妹妹可以选择做无数次这种操作:每次操作把连续相邻的k个石子堆中的每堆石子数目加一,请问叶妹妹能否让每堆石子的数目都相同呢?叶妹妹觉得这题太简单了,于是丢给了聪明的你,快来解决这个问题吧!思路:一眼的差分题阿。但是边界搞糊涂了。再理解理解。差分就是表示每个数之间的差。那么对于此题就是要原创 2021-02-23 21:12:35 · 281 阅读 · 0 评论 -
D. Extreme Subtraction(思维+差分构造)
https://codeforces.com/contest/1443/problem/D题意:使序列的前缀-1或者后缀-1,问能否构造成全0.思路:对序列的区间操作,考虑到转化到两点上去,而且全0意味着差分数组是0且第一个数是0.由此尝试差分。d[1]=a[1].对操作一而言,差分使得d[1]-1,d[i+1]+1;也就是使得序列中的差分数是负数的变成正数。对于操作二而言,差分使得d[i]-1,d[n+1]+1;也就是使得序列中的差分数是正数的变成负数。那么要想差分数组全是0,首先原创 2020-11-04 13:12:46 · 722 阅读 · 1 评论 -
C2 - Pokémon Army (hard version)(思维+差分/线段树+dp)详解
https://codeforces.com/contest/1420/problem/C2这道题十分的锻炼思维,也让我知道了同样是差分,从前面减后面和从后面减前面是有不同的意义的。还记得c1吗?我们是找波峰波谷的,实际上这个波峰波谷如果用差分的想法去找,可以做出c2的题。什么意思?波峰波谷的差值一定是中间值之差的和,那么波峰波谷就是看成了能不能做差做下去。比如1254367,从前往后差分是 -1,-3,1,2,-3,-1,7.会发现这样一个事情。把正数的差分全部加上去,就是最后...原创 2020-09-27 00:10:44 · 362 阅读 · 1 评论 -
D - Rescue Nibel!(差分+组合数学+思维)详解
https://codeforces.com/contest/1420/problem/D题意:问有多少种方案可以满足一段时间里面有k盏灯亮着。思路:首先把区间的问题转化到差分上去。考虑用差分代替区间。然后看样例5 21 32 43 54 65 7发现很符合区间覆盖的贪心样子。按照左端点排序。然后用一个cnt变量表示枚举到当前l时候前面还有多少能选的,cnt+=差分,如果当前枚举到的点差分值为1,说明在前面还亮着的取C(cnt,k-1)个就是答案。枚举就好了。代码在本地出现原创 2020-09-25 19:15:35 · 2539 阅读 · 5 评论 -
一维差分
关于一维差分的定义,用法:参考博客:https://blog.csdn.net/qq_41661809/article/details/86727017一维差分例题:https://vjudge.net/problem/HDU-1556Color the ballHDU - 1556自己第一次代码TLE,因为没有省略很多东西。第二次代码访问非法内存,因为数组开小了。...原创 2020-01-12 18:39:40 · 840 阅读 · 1 评论 -
D. Three Sequences(思维+数学+差分维护)详解
https://codeforces.com/contest/1406/problem/D题意:给一段序列ai,构造一个bi和ci,使得bi+ci=ai,且bi单调不减,ci单调不增,求最小的max(bi,ci);多次修改[l,r]上的数+=d,再问max(ai,bi)思路:初看此题,比较明显的是要差分维护,但是这题的关键是数学推导。比如样例a=2,-1,7,3;此时ai-ai-1的差分为-3,8,-4;第一步:设b1=x,c1=y;可以得到b1<=b2<=b3<原创 2020-09-13 11:51:17 · 852 阅读 · 0 评论 -
D. Frets On Fire(思维+差分+二分)
https://codeforces.com/problemset/problem/1119/D题目描述Miyako came to the flea kingdom with a ukulele. She became good friends with local flea residents and played beautiful music for them every day.In return, the fleas made a bigger ukulele for her:.原创 2020-09-07 20:37:23 · 226 阅读 · 0 评论 -
D. MUH and Cube Walls
https://codeforces.com/problemset/problem/471/DPolar bears Menshykov and Uslada from the zoo of St. Petersburg and elephant Horace from the zoo of Kiev got hold of lots of wooden cubes somewhere. They started making cube towers by placing the cubes one o原创 2020-09-04 16:32:55 · 211 阅读 · 0 评论 -
C. Vasya And Array
https://codeforces.com/problemset/problem/1187/C题目描述Vasya has an arraya_1, a_2, \dots, a_na1,a2,…,an.You don't know this array, but he told yoummfacts about this array. Theii-th fact is a triple of numberst_iti,l_iliandr_iri(0 \le ...原创 2020-09-01 15:23:15 · 210 阅读 · 0 评论 -
P1083 借教室
https://www.luogu.com.cn/problem/P1083题目描述在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来nn天的借教室信息,其中第ii天学校有r_iri个教室可供租借。共有mm份订单,每份订单用三个正整数描述,分别为d_j,s_j,t_jdj,sj,tj,表示某租借者需要从第s_原创 2020-07-12 10:50:27 · 297 阅读 · 0 评论