线段树
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 · 144 阅读 · 0 评论 -
【NOIP2012模拟8.6】绕圈跑
这题考场刚了很久,最后没想到正解,只好打了个n2暴力。 后来发现正解很容易理解,就开打了。 1h。。。 2h。。。 3h。。。 精度问题坑了我很久[○・`Д´・ ○] 没想到的是: 反正都要离散化,为什么不将它全部都乘一个最大速度呢??? WDF!!! 好了,一改,就切了。。。o ( ╥ ﹏ ╥ ) o 上标: #include<cstdio> #include<algorith...原创 2019-02-14 21:46:47 · 189 阅读 · 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 · 192 阅读 · 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 500010 using namespace std; struct node{int l,r,fr;}b[N];原创 2019-02-16 20:47:03 · 186 阅读 · 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 · 286 阅读 · 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 · 246 阅读 · 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 · 167 阅读 · 0 评论