【Coding】寒假每日一题Day.7.棋盘

题目来源

题目来自于AcWing平台:https://www.acwing.com/problem/content/description/5399/
以blog的形式记录程序设计算法学习的过程,仅做学习记录之用。

题目描述+输入输出格式+数据范围

在这里插入图片描述

样例

在这里插入图片描述

思路

思路参考自题解:https://www.acwing.com/solution/content/221556/

最开始拿到这道题的时候,实际上我已经看出来需要用前缀和&&差分来进行优化,但是有关前缀和与差分、二维前缀和与差分这一部分的模板我有点忘了,所以先使用了穷举法,看看能不能解决这道题。

在AcWing的OJ中,只过了前6个测试点,后4个测试点TLE了,因此去参看了题解回顾一下二维前缀和与差分的模板。

此处不记录二维前缀和与差分的模板是什么了,而直接记录为什么需要使用这两种方法。原因就在于,题目描述中说到,需要对 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2)这一个区间内的数进行操作,自然想到可以使用前缀和与差分这两个高效的工具来对二维区间进行维护。

最后对于输出,如果操作次数是偶数,那么最后输出的是白棋,否则是黑棋。

Code

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

const int maxn = 2005;

int a[maxn][maxn] = {
   0};
int n, m;

int main()
{
   
    cin >> n >> m;
    for(int i=1;i<=m;i++){
   
        int x1, x2, y1, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        a[x2 + 1][y2 + 1] ++ ;
        a[x1][y1] ++ ;
        a[x2 + 1][y1] --;
        a[x1][y2 + 1] --;
    }
    for(int i=1;i<=n;i++){
   
        for(int j=1;j<=n;j++){
   
            a[i][j] += a[i-1][j] + a[i][j-1] - a[i-1][j-1];
        } 
    }
    for(int i=1;i<=n;i++){
   
        for(int j=1;j<=n;j++){
   
            if(a[i][j] % 2 == 0)    cout << 0;
            else                    cout << 1;
        }
        cout << endl;
    }
    return 0;
}

相关推荐

  1. LeetCode 每日 Day 7(dp动态规划)

    2024-01-24 11:04:04       59 阅读
  2. LeetCode 每日 Day1

    2024-01-24 11:04:04       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-24 11:04:04       75 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-24 11:04:04       80 阅读
  3. 在Django里面运行非项目文件

    2024-01-24 11:04:04       64 阅读
  4. Python语言-面向对象

    2024-01-24 11:04:04       75 阅读

热门阅读

  1. Unity开发授权系统

    2024-01-24 11:04:04       54 阅读
  2. 将python打包成exe文件

    2024-01-24 11:04:04       58 阅读
  3. 【issue-halcon例程学习】edges_color.hdev

    2024-01-24 11:04:04       49 阅读
  4. ffmpeg 实用命令 -- 缩放与裁切

    2024-01-24 11:04:04       64 阅读
  5. 【笔记】Helm-3 主题-17 弃用的Kubernetes API

    2024-01-24 11:04:04       51 阅读
  6. 推荐系统——基于用户的协同过滤算法

    2024-01-24 11:04:04       40 阅读
  7. 哈希--49. 字母异位词分组/medium 理解度C

    2024-01-24 11:04:04       46 阅读