题解:P11853 [CSP-J2022 山东] 植树节
题意
给定了一个全部为
思路
题目要求对一个区间内的数加上
不过要注意序列从
并且还要注意题目并没有给出序列的长度,所以还要计算出最大的
code
#include<bits/stdc++.h>
#define N 1000005
using namespace std;
int n,r;
int a[N],b[N],ans;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
int x,y;
scanf("%d%d",&x,&y);
x++,y++; //将整个序列整体向后挪1
b[x]++;b[y+1]--; //差分
r=max(r,y); //计算序列的长度
}
for(int i=1;i<=r;i++)
{
a[i]=a[i-1]+b[i]; //求出原数组
ans=max(ans,a[i]); //统计最大值
}
cout<<ans<<endl;
return 0;
}