题目描述
输入描述
输出描述
输入样例
5
1 2 2 1
1 1 2 2
3 3 4 3
5 1 6 3
6 3 7 2
输出样例
4
样例解释
y 轴数据完全作为摆设的一题。本题的解法包括但不限于前缀和差分、贪心、暴力(数据太弱没把 n ^ 2 复杂度卡下去的锅 )。
对于读入的每一段区间,构造差分数组,即 [ x1 ] ++ , [ x2 ] – ,并求前缀和获得原始数组,该数组代表被挡板覆盖的次数。若值为 0 ,则说明未被挡板覆盖,不为 0 则已被挡板覆盖,此处不会下雨,ans ++ 即可。
参考代码
#include <bits/stdc++.h>
using namespace std;
int t,n,cnt,x,y,k,a,b,c,d;
int sum[1000005];
int ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a>>b>>c>>d;
sum[a]++;
sum[c]--;
}
for(int i=1;i<=100000;i++){
sum[i]+=sum[i-1];
if(sum[i]){
ans++;
}
}
cout<<ans;
}