树状数组模板
//查询和修改都是log(n)
//从c[1]开始进行赋值,不赋c[0],n为数的个数 //sum(x)为计算前x个数的和 #include <cstdio> #include <iostream> #include <cstring> using namespace std; const int MAXN=50010; int c[MAXN]; int n; int lowbit(int x) { return x&(-x); } void add(int i,int value) { while(i<=n) { c[i]+=value; i+=lowbit(i); } } int sum(int i) { int sum=0; while(i>=1) { sum+=c[i]; i-=lowbit(i); } return sum; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步