题解 | 区间增量与区间小于计数
区间增量与区间小于计数
https://www.nowcoder.com/practice/74481dd14e3b4875a190952f86e6ffab
#include <bits/stdc++.h>
using namespace std;
int main(){
long long n,q;
cin>>n>>q;
vector<long long>a(n+1);
for(int i=1;i<=n;i++){
cin>>a[i];
}
while(q--){
long long op,l,r,x;
cin>>op>>l>>r>>x;
if(op==1){
for(long long i=l;i<=r;i++){
a[i]+=x;
}
}
if(op==2){
long long ans=0;
for(long long i=l;i<=r;i++){
if(a[i]<x){
ans++;
}
}
cout<<ans<<'\n';
}
}
}
1. 先读取数组长度 n 和操作次数 q 。2. 读取初始数组,存入 vector 中。3. 循环处理 q 次操作:
- 如果是操作1,执行区间加法。
- 如果是操作2,执行区间统计并输出结果。
操作1(区间加法)的原理
- 核心逻辑:遍历区间 [l, r] ,对每个元素执行 a[i] += x 。
- 本质:暴力修改,直接对区间内的每个元素进行更新。
操作2(区间统计)的原理
- 核心逻辑:遍历区间 [l, r] ,逐个判断元素是否小于 x ,并统计满足条件的数量。
- 本质:暴力查询,直接遍历区间内的每个元素进行判断。
查看17道真题和解析