![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SPOJ GSS
文章平均质量分 77
yamiedie_
这个作者很懒,什么都没留下…
展开
-
SPOJ GSS1 Can you answer these queries I
题意: 给定一个序列和m个询问, 要求求出一个区间内的最大连续子段和。 思路: 用线段树维护一个区间左连续最大子段和,右连续最大子段和,区间和,区间最大连续子段和这4个东西, 然后就可以搞了。。 查询的时候,如果查询的区间过当前区间的中点的话,就要查询左边区间的右连续最大值和右边区间左连续的最大值, 加起来和答案比较。 #include #include #include using原创 2015-04-09 18:50:39 · 667 阅读 · 0 评论 -
SPOJ GSS2 Can you answer these queries II
题意: 给定一个序列和m个询问, 要求求出一个区间内最大连续子段和, 并且相同的数只能算一次。 思路: 把询问离线, 按右端点排序,从小到大扫描询问, 假设当前询问的右端点是r, 用线段树维护4个值: mx_s: 左端点为ll,右端点在[l,r]的最大连续子段和(也就是最优的情况)。 s:左端点为ll, 到r的区间和。 mx_add: 区间的最优懒惰标记。 add: 区间的所有懒惰标原创 2015-04-09 19:00:08 · 748 阅读 · 0 评论 -
SPOJ GSS3 Can you answer these queries III
题意: GSS1的基础上加上修改。。 #include #include #include #include using namespace std; #define N 100020 #define ls (i << 1) #define rs (ls | 1) #define md ((ll + rr) >> 1) int n, sum[N*4], lx[N*4], r原创 2015-04-09 19:06:09 · 634 阅读 · 0 评论 -
SPOJ GSS7 Can you answer these queries VII
题意: 维护一棵树, 需要满足修改路径上的值和询问路径上最大连续子段和。 思路: 用lct维护。 修改直接搞个lazy就好, 询问的时候如果是求出lca的话比较麻烦, 但是可以先把u弄成树的跟, 然后access(v), 然后在splay(u), 这时候u节点所在的splay树里面就是u到v的所有节点, 所以输出最大值就可以了。。 重点还是在push_up和push_down。。。原创 2015-04-09 19:27:15 · 615 阅读 · 0 评论 -
SPOJ GSS4 Can you answer these queries IV
题意: 给定一个序列和m个操作, 1,让l~r区间内的数都开方 2,求区间和。 思路: 由于LL内的数最多开方10次就会变成1了, 所以用区间维护区间和, 然后开方的时候如果不是全都是1的话就暴力开方, 区间内全都是1的话就不更新。 这么搞不是很靠谱的感觉。。用线段树套平衡树可以做到mlognlogn。。 但是懒得写了。。。 #include #include #include原创 2015-04-09 19:10:22 · 432 阅读 · 0 评论 -
SPOJ GSS5 Can you answer these queries V
题意: 给定一个序列和m个询问, 每次询问左端点在[x1,y1],右端点在[x2,y2]的最大连续子段和。 思路: 还是用线段树跟GSS1差不多的搞,如果两个区间不相交的话,就求出[x1,y1]的右连续和[x2,y2]的左连续, 再加上中间的区间和。 如果相交的话, 需要求出[x2,y1]的最大连续子段和,[x2,y1]的左连续加上[y1+1,y2]的右连续,[x1,x2-1]的左连续加上原创 2015-04-09 19:18:01 · 734 阅读 · 0 评论 -
SPOJ GSS6 Can you answer these queries VI
题意: 要求维护一个数列, 满足插入, 删除,修改和询问最大连续子段和的操作。。 思路: 用splay维护, 由于子段要求非空。。 所以push_up那里不能直接用空儿子的值。。 #include #include #include #include #include #include #include #include #include #include us原创 2015-04-09 19:21:50 · 539 阅读 · 0 评论