题解:P10903 [蓝桥杯 2024 省 C] 商品库存管理
题目传送门
思路
设数组
若不执行某次操作,就相当于在最终的
代码
#include<bits/stdc++.h>
using namespace std;
int n,m,ans,cnt;
int l[300005],r[300005]; //如题
int c[300005],q[300005]; //差分数组与前缀和数组
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>l[i]>>r[i];
c[l[i]]++;
c[r[i]+1]--;
} //输入与差分
for(int i=1;i<=n;i++){
q[i]=q[i-1]+c[i];
if(q[i]==0){
ans++;
}
} //求最终货物数
for(int i=1;i<=m;i++){
cnt=ans;
for(int t=l[i];t<=r[i];t++){
if(q[t]==1){
cnt++;
}
}
cout<<cnt<<endl;
} //求出答案并输出
}
AC记录