P3397 地毯

题目链接

https://www.luogu.com.cn/problem/P3397

题目思路

直接暴力求解,枚举x1x2y1y2
或者二维差分

题目代码

暴力

#include <iostream>
#include <algorithm>

using namespace std;
const int N = 1010;
int s[N][N];
int n, m;

int main()
{
    cin >> n >> m;
    while(m -- )
    {
        int x1, y1, x2, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        for(int i = x1; i <= x2; i ++ )
            for(int j = y1; j <= y2; j ++ )
                s[i][j] ++ ;
    }
    
    for(int i = 1; i <= n; i ++ )
    {
        for(int j = 1; j <= n; j ++ )
            cout << s[i][j] << ' ';
        puts("");
    }
    return 0;
}

二维差分

#include <iostream>
#include <algorithm>

using namespace std;
const int N = 1010;
int s[N][N];
int n, m;

int main()
{
    cin >> n >> m;
    while(m -- )
    {
        int x1, y1, x2, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        s[x1][y1] ++ ;
        s[x2 + 1][y1] -- ;
        s[x1][y2 + 1] -- ;
        s[x2 + 1][y2 + 1] ++ ;
    }
    
    for(int i = 1; i <= n; i ++ )
    {
        for(int j = 1; j <= n; j ++ )
        {
            s[i][j] += s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1];
            cout << s[i][j] << ' ';
        }
        puts("");
    }
    return 0;
}
posted @   vacilie  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示
主题色彩