2021 江西省ICPC省赛 L.It Rains Again(前缀和差分)

题目描述

在这里插入图片描述

输入描述

在这里插入图片描述

输出描述

在这里插入图片描述

输入样例

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;
}

猜你喜欢

转载自blog.csdn.net/laysan/article/details/120955877