![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
追梦_人
这个作者很懒,什么都没留下…
展开
-
A Simple Problem with Integers (基础线段树)
题意 给出了一个序列,你需要处理如下两种询问 “C a b c”表示给[a, b]区间中的值全部增加c (-10000 ≤ c ≤ 10000)。 “Q a b” 询问[a, b]区间中所有值的和。 本题很简单注意数据范围就可以了 (他是很直白的区域更新)lazy 标记要用 long long 在这错了很多次。以下是AC代码#include <iostream> #include <s原创 2016-07-30 11:35:33 · 634 阅读 · 0 评论 -
Just a Hook(就是一个 set(线段树))
题意 有一个长度为n的铁做的棒,为1,你可以给他包银,但是包银的区域就会变成2,也可以给他包金,但是包金的区域会变成3,经过多次变换叫你求这个棒的值。 AC代码 #include <iostream> #include <stdio.h> using namespace std;const int maxn=100000;struct node { int l原创 2016-07-30 12:17:06 · 337 阅读 · 0 评论 -
Can you answer these queries?(单点更新+标记)
题意 给你一个数组 再给你一个区间 让你对区间里的每一个数开根 最后在求和 分析:对于一个long long 型的数 开7次根就会变成1 所以我思想就是把区域更新变成单点更新 因为每一个数最多被开7次根 7次以后在对他开根就不必要对他操作了。因为只查询一次所以不必要写查询函数 AC代码 #include <iostream> #include原创 2016-07-30 12:27:12 · 313 阅读 · 0 评论 -
字典树处理《异或》
题目: 问题很简单,现在有一个数组a1,a2,a3……an。你的任务就是找到一个连续子段[l,r],使得al^al+1^……^ar达到最大。 Input 多组输入,每组有两行。第一行有一个整数n(1<=n<=10^5),表示数组的元素个数。第二行有n个元素,依次表示数组的元素。(0<=ai<=10^6) Output 每组输出一行,这行仅一个数字。表示最大的连续子段异或值。 Samp原创 2016-08-11 16:51:54 · 783 阅读 · 0 评论