对第i组数据,首先输出“Case i:”和回车,
对于每个Query询问,输出一个整数并回车,表示询问的段中的总人数,这个数保持在int以内。
Sample Input
1
10
1 2 3 4 5 6 7 8 9 10
Query 1 3
Add 3 6
Query 2 7
Sub 10 2
Add 6 3
Query 3 10
End
Sample Output
Case 1:
6
33
59
[](
)2.代码
单点更新
#define _CRT_SECURE_NO_WARNINGS
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
#define lson l,m,rt<<1 宏定义更方便
#define rson m + 1,r,rt<<1|1
const int maxn = 55555; //元素总个数
int sum[maxn << 2]; ///sum求和
void PushUP(int rt) ///更新父节点
{
sum[rt] = sum[rt << 1] + sum[rt << 1 | 1];
}
void build(int l,int r,int rt) //建树
{
if (l == r) ///到达叶节点
{
scanf("%d", &sum[rt]);
return ;
}
int m = (l + r) >> 1;
///左右递归
build(lson);
build(rson);
///更新信息
PushUP(rt);
}
///点修改
void update(int p, int add, int l, int r, int rt)//l,r表示当前节点区间,rt表示当前节点编号
{
if (l == r) //到叶节点,修改
{
sum[rt] += add;
return;
}
int m = (l + r) >> 1;
//根据条件判断往左子树调用还是往右
if (p <= m) update(p, add, lson);
else update(p, add, rson);
PushUP(rt);//子节点更新了,所以本节点也需要更新信息
}
int query(int L, int R, int l, int r, int rt)//L,R表示操作区间,l,r表示当前节点区间,rt表示当前节点编号
{
if (L <= l && r <= R)
{
return sum[rt];//在区间内,直接返回
}
int m = (l + r) >> 1;
//累计答案
int ans = 0;
if (L <= m) ans += query(L, R, lson);
if (R > m) ans += query(L, R, rson);
return ans;
}
int main()
{
//memset(sum, 0, sizeof(sum));
int T, n;
scanf("%d",&T);
for (int cas = 1;cas <= T; cas++)
{
printf("Case %d:\n", cas);
scanf("%d", &n);
build(1, n, 1); ///建立节点
### 最后
**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.youkuaiyun.com/m0_60958482/java-p7)**
### ActiveMQ消息中间件面试专题
* 什么是ActiveMQ?
* ActiveMQ服务器宕机怎么办?
* 丢消息怎么办?
* 持久化消息非常慢怎么办?
* 消息的不均匀消费怎么办?
* 死信队列怎么办?
* ActiveMQ中的消息重发时间间隔和重发次数吗?
**ActiveMQ消息中间件面试专题解析拓展:**

* * *
# redis面试专题及答案
* 支持一致性哈希的客户端有哪些?
* Redis与其他key-value存储有什么不同?
* Redis的内存占用情况怎么样?
* 都有哪些办法可以降低Redis的内存使用情况呢?
* 查看Redis使用情况及状态信息用什么命令?
* Redis的内存用完了会发生什么?
* Redis是单线程的,如何提高多核CPU的利用率?

* * *
# **Spring面试专题及答案**
* 谈谈你对 Spring 的理解
* Spring 有哪些优点?
* Spring 中的设计模式
* 怎样开启注解装配以及常用注解
* 简单介绍下 Spring bean 的生命周期
**Spring面试答案解析拓展**

* * *
# 高并发多线程面试专题
* 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
* Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
* Java 中 wait 和 sleep 方法有什么区别?
* 如何在 Java 中实现一个阻塞队列?
* 如何在 Java 中编写代码解决生产者消费者问题?
* 写一段死锁代码。你在 Java 中如何解决死锁?
**高并发多线程面试解析与拓展**

* * *
# jvm面试专题与解析
* JVM 由哪些部分组成?
* JVM 内存划分?
* Java 的内存模型?
* 引用的分类?
* GC什么时候开始?
**JVM面试专题解析与拓展!**

写一段死锁代码。你在 Java 中如何解决死锁?
**高并发多线程面试解析与拓展**
[外链图片转存中...(img-bjv1l4vm-1630292598911)]
* * *
# jvm面试专题与解析
* JVM 由哪些部分组成?
* JVM 内存划分?
* Java 的内存模型?
* 引用的分类?
* GC什么时候开始?
**JVM面试专题解析与拓展!**
[外链图片转存中...(img-LH0Iwh8H-1630292598913)]