1 solutions

  • 0
    @ 2025-11-21 9:13:47

    用哈希表标记涂过的矩形,c++中的map

    
    #include<iostream>
    #include<vector>
    #include<map>
    #include<algorithm>
    
    using namespace std;
    
    int main(){
        int n;
        cin >> n;
        int max_y = 0;
        int max_x = 0;
        map<pair<int,int>,int> mp;
        int cnt = 0;
        for(int i = 0;i < n;i++)
        {
            int x1,x2,y1,y2;
            cin >> x1 >> y1 >> x2 >> y2;
            max_x = max(max_x,x2);
            max_x = max(max_x,x1);
            max_y = max(max_y,y1);
            max_y = max(max_y,y2);
            for(int x = x1;x < x2;x++)
            {
                for(int j = y1; j < y2;j++)
                {
                    mp[{x,j}] = 1;
                }
            }
    
        }
    
        for(auto [x,y]:mp)
        {
            if(y == 1)
            cnt++;
        }
    
        cout << cnt << endl;
    
    
        return 0;
    }
    

    Information

    ID
    69
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    2
    Tags
    # Submissions
    45
    Accepted
    30
    Uploaded By