线段树是把一个线段分块,利用分块的思想降低时间复杂度。我感觉是用空间换时间的一种做法。根据维护的信息不同,线段树实现的功能也不同。有区间加,区间乘,区间求最小最大值,区间求和等功能,十分强大的一个数据结构。主要是利用二分的思想去实现,把一个长度为n的线段,先前后分为0-n/2,n/2-n,然后递归地建树,最终得到一颗完美二叉树。
目前,下列代码是实现洛谷3372线段树1(区间和)的线段树
#include
#include
#define maxn 1000001
using namespace std;
typedef long long LL;
long long n,m,a[maxn],ans[maxnm;
for(int i=1;i
关注
打赏