树状数组模板
1 /* 2 树状数组基本模板 3 2014.4.20 4 5 初始:设a[i]为要读入的数组,共n个元素,则 6 for i:=1 to n do add(i,a[i]); 7 8 add(x,d):在x的位置加上d 9 sum(x):求a[1]~a[x]的和 10 */ 11 12 #include <iostream> 13 #include <cstring> 14 using namespace std; 15 int c[1000]; 16 int n; 17 18 int lowbit(int x) 19 { 20 return x&(-x); 21 } 22 23 int sum(int x) 24 { 25 int ret=0; 26 while (x>0) 27 { 28 ret=ret+c[x]; 29 x=x-lowbit(x); 30 } 31 return ret; 32 } 33 34 void add(int x,int d) 35 { 36 while (x<=n) 37 { 38 c[x]=c[x]+d; 39 x=x+lowbit(x); 40 } 41 } 42 43 int main() 44 { 45 memset(c,0,sizeof(c)); 46 47 48 49 return 0; 50 }
posted on 2014-12-20 22:27 Pentium.Labs 阅读(167) 评论(0) 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次 .NET某旅行社酒店管理系统 卡死分析
· 长文讲解 MCP 和案例实战
· Hangfire Redis 实现秒级定时任务,使用 CQRS 实现动态执行代码
· Android编译时动态插入代码原理与实践
· 解锁.NET 9性能优化黑科技:从内存管理到Web性能的最全指南
· 一天 Star 破万的开源项目「GitHub 热点速览」
· 瞧瞧别人家的日期处理,那叫一个优雅!
· 使用TypeScript开发微信小程序(云开发)-入门篇
· 没几个人需要了解的JDK知识,我却花了3天时间研究
· 定时任务稳定性解决方案-healthchecks监控系统