![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
Larry1118
这个作者很懒,什么都没留下…
展开
-
【五校联考4day1】寻找神格
这题t<=2的都可以很容易地更改或是查询,重点就是求方差了。题目已经给了方差的求法,我们只需要将其化简即可。(手推就行了)最后化简成:A和B之间的:sum(a[i]^2)/(B-A+1)-sum(a[i])*sum(a[i])/(B-A+1)/(B-A+1)sum指的是A到B的区间和(a[i]^2为平方和,a[i]为和)最后构造两个线段树,一个存平方和,一个存和即可。在线的上...原创 2019-01-20 14:53:19 · 132 阅读 · 0 评论 -
【NOIP2012模拟8.6】绕圈跑
这题考场刚了很久,最后没想到正解,只好打了个n2暴力。后来发现正解很容易理解,就开打了。1h。。。2h。。。3h。。。精度问题坑了我很久[○・`Д´・ ○]没想到的是:反正都要离散化,为什么不将它全部都乘一个最大速度呢???WDF!!!好了,一改,就切了。。。o ( ╥ ﹏ ╥ ) o上标:#include<cstdio>#include<algorith...原创 2019-02-14 21:46:47 · 176 阅读 · 0 评论 -
jzoj1306. Sum
这题我们可以用权值线段树来做。题外话:这题50分的应该都是AC的吧???我们先求出a数组的前缀和数组c (记得模P)。然后每次做完当前状态i后将c[i]加入到权值线段树里。因为答案要求尽可能小,所以我们对于以当前点为右端点的答案为:a[i] - a[i]-K的前驱或a[i]+p - a[i]+P-K的前驱然后不断更新答案即可。上标:#include&lt;cstdio&...原创 2019-02-16 12:26:36 · 186 阅读 · 0 评论 -
luogu P1972 [SDOI2009]HH的项链
这题一开始我是这样子打的:#include&amp;amp;lt;cstdio&amp;amp;gt;#include&amp;amp;lt;algorithm&amp;amp;gt;#include&amp;amp;lt;cmath&amp;amp;gt;#define N 500010using namespace std;struct node{int l,r,fr;}b[N];原创 2019-02-16 20:47:03 · 175 阅读 · 0 评论 -
jzoj 4769. 【GDOI2017模拟9.9】graph
Description对于一个图, 如果它的点集能被分成两个部分, 使得在原图中每一部分之间的点没有任何边相连,则该图被称为二分图。现在给定一个无向图,每次增加一条边,或者删除一条边。要求您每次判断它是不是二分图。Input第一行两个数n,m,表示该图的点数和操作数。接下来m行,以一个数type开头。type为0或1。若type为1则表示加一条边,接下来输入两个数a,b表示它连接的边的编...原创 2019-03-20 21:21:48 · 268 阅读 · 0 评论 -
jzoj 4660. 【GDOI2017模拟7.19】小X做实验
题目就不贴了这道题在比赛的时候就想到了用线段树来干,然后就开干了。。。结果发现自己打线段树的水平似乎不够,调了好久都没有过样例,最后只好弃疗了。重点!!! & Solution懒惰标记的更新情况:void update(int x){ t[x<<1]*=lazy[x],ma[x<<1]*=lazy[x]; t[x<<1|1]*=lazy[...原创 2019-04-15 21:47:11 · 232 阅读 · 0 评论 -
jzoj 4638. 第三条跑道
Question给你一个区间,有修改和查询操作:修改:将一段区间乘以x查询:∏i=lrφ(a[i])mod108+7∏_{i=l}^rφ(a[i]) mod 10^8+7∏i=lrφ(a[i])mod108+7(a[i],x<=600,n<=10000)(a[i],x<=600,n<=10000)(a[i],x<=600,n&...原创 2019-05-07 17:38:28 · 152 阅读 · 0 评论