博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1166 敌兵布阵 ( 线段树或者树状数组)
阅读量:5011 次
发布时间:2019-06-12

本文共 1760 字,大约阅读时间需要 5 分钟。

线段树:

1 #include
2 #include
3 using namespace std; 4 int sum; 5 int s1[100000],s2[1000000]; 6 int build(int l,int r,int p) 7 { 8 if (l==r) return s2[p]=s1[l]; 9 int m=(l+r)/2;10 int a=build(l,m,2*p);11 int b=build(m+1,r,2*p+1);12 return s2[p]=a+b;13 }14 void un(int l,int r,int p,int pos,int c)15 {16 if (l<=pos&&r>=pos) s2[p]+=c;17 if (l==r) return ;18 int m=(l+r)/2;19 if (pos<=m) un(l,m,2*p,pos,c);20 else un(m+1,r,2*p+1,pos,c);21 return ;22 }23 void find(int l,int r,int p,int ll,int rr)24 {25 if (ll<=l&&rr>=r) {sum+=s2[p];return ;}26 if (ll>r||rr

 

树状数组:

 

1 #include
2 #include
3 #include
4 using namespace std; 5 6 const int mx = 100005; 7 int a[mx]; 8 int n; 9 10 int lowbit(int x)11 {12 return x&-x;13 }14 15 void updata(int i,int x)16 {17 if (i>n) return ;18 a[i]+=x;19 i+=lowbit(i);20 updata(i,x);21 }22 23 int sum(int i)24 {25 if (i<=0) return 0;26 return a[i]+sum(i-lowbit(i));27 }28 29 int main()30 {31 int t;32 scanf("%d",&t);33 for (int cas=1;cas<=t;cas++)34 {35 printf("Case %d:\n",cas);36 scanf("%d",&n);37 memset(a,0,sizeof(a));38 for (int i=1;i<=n;i++)39 {40 int b;41 scanf("%d",&b);42 updata(i,b);43 }44 char s[10];45 while(1)46 {47 int u,v;48 scanf("%s",s);49 if (s[0]=='E') break;50 scanf("%d%d",&u,&v);51 if (s[0]=='Q') printf("%d\n",sum(v)-sum(u-1));52 if (s[0]=='A') updata(u,v);53 if (s[0]=='S') updata(u,-v);54 }55 }56 }

 

转载于:https://www.cnblogs.com/pblr/p/4717963.html

你可能感兴趣的文章
Java Socket编程 - 基于TCP方式的二进制文件传输【转】http://blog.csdn.net/jia20003/article/details/8248221...
查看>>
阅读之https及加密原理
查看>>
HDOJ4550 卡片游戏 随便销毁内存的代价就是wa//string类的一些用法
查看>>
css文本样式text、字体样式font
查看>>
python判断图片是否损坏
查看>>
MySQL服务启动:某些服务在未由其他服务或程序使用时将自动停止
查看>>
软件工程第四周作业 - 单元测试
查看>>
KNN与SVM对比&SVM与逻辑回归的对比
查看>>
php 现在拓展地址
查看>>
【Java并发编程】之十六:深入Java内存模型——happen-before规则及其对DCL的分析(含代码)...
查看>>
团队个人冲刺第三天
查看>>
unit
查看>>
2017-10-17 NOIP模拟赛2
查看>>
How to install ia32-libs in Ubuntu 14.04 LTS (Trusty Tahr)
查看>>
ACM/ICPC 之 模拟 (HNUOJ 13391-换瓶模拟)
查看>>
JavaWeb学习——JSP基础
查看>>
Eclipse tomcat server 无法添加项目
查看>>
黑寡妇黄飞鸿
查看>>
leetcode 217 Contains Duplicate 数组中是否有重复的数字
查看>>
The Ctrl & CapsLock `problem'
查看>>