很明显不是刚刚写的线段树
线段树是什么呢?
线段树啊…
大概就是一颗可爱的二叉树…
它的每一个节点代表着一个区间的一个性质…
(比如说最大值最小值还有和之类的…)
然后因为是二叉树所以有很多奇奇怪怪的东西都来了…
至于有什么也不打算细讲。
一个点x的左儿子就是x*2呀,右儿子就是x*2+1呀
还有在线段树里面
叶儿子
或者说叶节点 所代表的区间是1呀。
想象成初中历史书上的周朝等级制度图就吼了呀!
只不过是一颗树而已。
或者这么看更吼?
反正就是一颗树辣!不是一颗赛艇!
我承认走神了(义正言辞)。
真正的线段树是这样的。。。
大概就是这样!
然后上强势板子!
1.单点修改+区间求和!
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#define ls (x << 1)
#define rs (x << 1 | 1)
#define MID int mid=(l+r)>>1
using namespace std;
int a[101000],t[400100],n,m,L,R,place,add,Ans;
inline int gi()
{
int x=0,si=1;char ch=getchar();
while(ch>'9' || ch<'0'){