树状数组:区间修改,区间查询
void update1(ll k,ll x) { int u=k; while(k<=n) { c1[k]+=x; c2[k]+=(u-1)*x; k+=lowbit(k); } } void update(ll l,ll r,ll x) { update1(l,x); update1(r+1,-x); } ll query1(ll k) { ll ans=0; while(k>0) { ans+=c1[k]; k-=lowbit(k); } return ans; } ll query2(ll k) { ll ans=0; while(k>0) { ans+=c2[k]; k-=lowbit(k); } return ans; } ll query(ll l,ll r) { return r*query1(r)-query2(r)-(l-1)*query1(l-1)+query2(l-1); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具