当前位置: 首页 > news >正文

2024/3/14打卡棋子(14届蓝桥杯)——差分

标准差分模板   差分——前缀和的逆运算(一维+二维)-CSDN博客

题目

小蓝拥有 n×n 大小的棋盘,一开始棋盘上全都是白子。

小蓝进行了 m 次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色,黑色棋子变为白色)。

请输出所有操作做完后棋盘上每个棋子的颜色。

输入格式

输入的第一行包含两个整数 n,m,用一个空格分隔,表示棋盘大小与操作数。

接下来 m 行每行包含四个整数 x1,y1,x2,y2,相邻整数之间使用一个空格分隔,表示将在 x1 至 x2 行和 y1 至 y2 列中的棋子颜色取反。

输出格式

输出 n 行,每行 n 个 0 或 1 表示该位置棋子的颜色。

如果是白色则输出 0,否则输出 1。

数据范围

对于 30% 的评测用例,1≤n,m≤500;
对于所有评测用例,1≤n,m≤2000,1≤x1≤x2≤n,1≤y1≤y2≤n。

输入样例:

3 3
1 1 2 2
2 2 3 3
1 1 3 3

输出样例:

001
010
100

方法

        针对于改变一个区间的值进行改变,(无论是加,减等),都可以考虑使用差分来做。

差分定义:给定一个原数组a[1],a[2],a[3]...a[n],构造一个差分数组b[1],b[2],b[3]...b[n],                        使得a[i] = b[1]+b[2]+b[3]+...+ b[i]

        因此,这里可以选用二维差分:

         差分——前缀和的逆运算(一维+二维)-CSDN博客   (对差分的详解)

        对于该题来说,可以发现,翻奇数次是黑子,翻偶数次是白子。因此如果我们想要改变某个区间的值 ,我们可以直接选择对于该区间的每个数+1,如果最终结果是偶数,就用0表示,奇数用1表示。

代码

import java.io.*;
// 直接+1,如果是偶数,则为白子,否则为黑子
class Main{static int N = 2010;static int n,m;static int[][] a = new int[N][N];public static void main(String[] args) throws IOException{BufferedReader in = new BufferedReader(new InputStreamReader(System.in));BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));String[] s = in.readLine().split(" ");n = Integer.parseInt(s[0]);m = Integer.parseInt(s[1]);while(m-->0){s = in.readLine().split(" ");int x1 = Integer.parseInt(s[0]);int y1 = Integer.parseInt(s[1]);int x2 = Integer.parseInt(s[2]);int y2 = Integer.parseInt(s[3]);insert(x1,y1,x2,y2); // 对每个区间进行差分}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]+a[i][j]; // 计算前缀和,即a[i][j]if(a[i][j]%2==0) out.write("0");else out.write("1");}out.write("\n");}out.close();}// 差分计算public static void insert(int x1,int y1,int x2,int y2){a[x1][y1] += 1;a[x1][y2+1] -= 1;a[x2+1][y1] -= 1;a[x2+1][y2+1] += 1;}
}

相关文章:

2024/3/14打卡棋子(14届蓝桥杯)——差分

标准差分模板 差分——前缀和的逆运算&#xff08;一维二维&#xff09;-CSDN博客 题目 小蓝拥有 nn 大小的棋盘&#xff0c;一开始棋盘上全都是白子。 小蓝进行了 m 次操作&#xff0c;每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色&#xff0…...

A Survey on Multimodal Large Language Models

目录 1. Introduction2. 概述方法多模态指令调优 3.1.1 简介3.1.2 预备知识3.1.3 模态对齐3.1.4 数据3.1.5 模态桥接3.1.6 评估 3.2.多模态情境学习3.3.多模态思维链3.3.1 模态桥接3.3.2 学习范式3.3.3 链配置3.3.4 生成模式3.4.LLMs辅助视觉推理3.4.1 简介3.4.2 训练范式3.4.3…...

Java面向对象编程(高级)一

在Java中&#xff0c;面向对象编程更是核心设计理念之一&#xff0c;为开发者提供了丰富的工具和特性来创建灵活、可扩展的应用程序。 本博客将深入探讨Java面向对象编程的高级特性&#xff0c;包括但不限于多态、继承、封装、抽象类、接口等方面的内容。我们将从实际案例出发…...

1056:点和正方形的关系

【题目描述】 有一个正方形&#xff0c;四个角的坐标&#xff08;x,y)分别是(1&#xff0c;-1)&#xff0c;(1&#xff0c;1)&#xff0c;(-1&#xff0c;-1)&#xff0c;(-1&#xff0c;1)&#xff0c;x是横轴&#xff0c;y是纵轴。写一个程序&#xff0c;判断一个给定的点是…...

【iOS】ARC学习

文章目录 前言一、autorelease实现二、苹果的实现三、内存管理的思考方式__strong修饰符取得非自己生成并持有的对象__strong 修饰符的变量之间可以相互赋值类的成员变量也可以使用strong修饰 __weak修饰符循环引用 __unsafe_unretained修饰符什么时候使用__unsafe_unretained …...

数据分析 | Matplotlib

Matplotlib 是 Python 中常用的 2D 绘图库&#xff0c;它能轻松地将数据进行可视化&#xff0c;作出精美的图表。 绘制折线图&#xff1a; import matplotlib.pyplot as plt #时间 x[周一,周二,周三,周四,周五,周六,周日] #能量值 y[61,72,66,79,80,88,85] # 用来设置字体样式…...

mac npm install 很慢或报错

npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/pnpm failed, reason: certificate has expired 1、取消ssl验证&#xff1a; npm config set strict-ssl false 修改后一般就可以了&#xff0c;…...

100天精通Python(实用脚本篇)——第118天:基于selenium和ddddocr库实现反反爬策略之验证码识别

文章目录 专栏导读一、前言二、ddddocr库使用说明1. 介绍2. 算法步骤3. 安装4. 参数说明5. 纯数字验证码识别6. 纯英文验证码识别7. 英文数字验证码识别8. 带干扰的验证码识别 三、验证码识别登录代码实战1. 输入账号密码2. 下载验证码3. 识别验证码并登录 书籍推荐 专栏导读 …...

51单片机与ARM单片机的区别

51的MCU与ARM的MCU的区别 51单片机与ARM单片机区别主要体现在以下几个方面&#xff1a; 指令集架构&#xff08;ISA&#xff09;&#xff1a; 51单片机&#xff1a;基于Intel 8051架构&#xff0c;采用的是CISC&#xff08;复杂指令集计算机&#xff09;设计&#xff0c;其指令…...

Android 10.0 mtk平台系统添加公共so库的配置方法

1.前言 在10.0的系统定制化开发中,由于 Android对应用应用的系统库限制越来越严格,上层应用包括(apk、jar包)不能直接引用系统的一些so库了。如果需要使用,只能使用,系统申明的公共库。 如果使用非系统申明的公共库,apk运行后调用该so库时,app会直接挂掉,或者系统开发…...

simulink平面五杆机构运动学仿真

1、内容简介 略 68-可以交流、咨询、答疑 2、内容说明 simulink平面五杆机构运动学仿真 [ 摘 要 ] 以 MATLAB 程序设计语言为平台 , 以平面可调五杆机构为主要研究对象 , 给定机构的尺寸参数 , 列出所 要分析机构的闭环矢量方程 , 使用 MATLAB 软件中 SIMULINK 仿真工…...

【Docker】APISIX Ingress Controller部署

APISIX Ingress Controller环境标准软件基于Bitnami apisix-ingress-controller:构建。当前版本为1.8.0 你可以通过轻云UC部署工具直接安装部署&#xff0c;也可以手动按如下文档操作&#xff0c;该项目已经全面开源&#xff0c;可以从如下环境获取 配置文件地址: https://git…...

常见的十大网络安全攻击类型

常见的十大网络安全攻击类型 网络攻击是一种针对我们日常使用的计算机或信息系统的行为&#xff0c;其目的是篡改、破坏我们的数据&#xff0c;甚至直接窃取&#xff0c;或者利用我们的网络进行不法行为。你可能已经注意到&#xff0c;随着我们生活中越来越多的业务进行数字化&…...

接口幂等性问题和常见解决方案

接口幂等性问题和常见解决方案 1.什么是接口幂等性问题1.1 会产生接口幂等性的问题1.2 解决思路 2.接口幂等性的解决方案2.1 唯一索引解决方案2.2 乐观锁解决方案2.3 分布式锁解决方案2.4 Token解决方案(最优方案) 3 Token解决方案落地3.1 token获取、token校验3.2 自定义注解,…...

网站首页添加JS弹屏公告窗口教程

很多小白站长会遇到想给自己的网站添加一个弹屏公告&#xff0c;用于做活动说明、演示站提示等作用与目的。 下面直接上代码&#xff1a;&#xff08;直接复制到网页头部、底部php、HTML文件中&#xff09; <script src"https://www.mohuda.com/site/js/sweetalert.m…...

【Rockchip 安10.1 默认给第三方apk默认开启所有权限】

Rockchip 安10.1 默认给第三方apk默认开启所有权限 问题描述解决方法 郑重声明:本人原创博文&#xff0c;都是实战&#xff0c;均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: Rockchip 3229 OS:Android 10.1 Kernel: 4.19 问题描述 有些第三方或者主界面&…...

python-redis缓存装饰器

目录 redis_decorator安装查看源代码使用 redis_decorators安装查看源代码\_\_init\_\_.pycacheable.py 各种可缓存的类型cache_element.py 缓存的元素caching.py 缓存主要逻辑 使用 总结全部代码参考 redis_decorator 安装 pip install redis_decorator查看源代码 from io …...

每个私域运营者都必须掌握的 5 大关键流量运营核心打法!

很多人觉得私域运营比较简单&#xff0c;只是运营的事情&#xff0c;但事实并非如此&#xff0c;私域运营体系非常大&#xff0c;包含了公私域联动、品牌运营、品类战略&#xff0c;它是一个自上而下&#xff0c;由内到外的系统化工程。 很多人天天在想着如何引流拓客&#xf…...

蓝桥杯--平均

在编程竞赛&#xff0c;尤其是参与蓝桥杯的过程中&#xff0c;遇到各种问题需求是家常便饭。最近&#xff0c;我遇到了一个非常有趣且颇具挑战性的算法问题。问题描述如下&#xff1a;对于一个长度为n的数组&#xff08;n是10的倍数&#xff09;&#xff0c;数组中的每个元素均…...

未来已来:科技驱动的教育变革

我们的基础教育数百年来一成不变。学生们齐聚在一个物理空间&#xff0c;听老师现场授课。每节课时长和节奏几乎一致&#xff0c;严格按照课表进行。老师就像“讲台上的圣人”。这种模式千篇一律&#xff0c;并不适用于所有人。学生遇到不懂的问题&#xff0c;只能自己摸索或者…...

【蓝桥杯每日一题】填充颜色超详细解释!!!

为了让蓝桥杯不变成蓝桥悲&#xff0c;我决定在舒适的周日再来一道题。 例&#xff1a; 输入&#xff1a; 6 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 输出&#xff1a; 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 2 2 1 1 1 2 2 2 1 1 2 2 2 2 1 1…...

VSCODE的常用插件

1、中文设置 &#xff08;1&#xff09;搜索 chinese Chinese (Simplified) Language Pack for Visual Studio Code C/C Extension Pack &#xff08;2&#xff09;配置 通过使用“Configure Display Language”命令显式设置 VS Code 显示语言&#xff0c;可以替代默认 UI…...

Oracle常用DBA相关语句

Oracle常用DBA相关语句 1 表空间1.1 创建表空间1.2 删除表空间1.3 收缩表空间1.4 新增表空间文件1.5 查看表空间使用情况1.6 查看表所占用的空间大小 2 表分区2.1 查询表分区的创建情况2.2 查询表时指定分区 3 用户3.1 创建用户3.2 给用户赋权限3.3 删除用户 4 导入导出4.1 导入…...

JavaScript 入门指南(一)简介及基础语法

JavaScript 简介 JavaScript&#xff0c;简称 js&#xff0c;是一种基于对象&#xff08;object-based&#xff09;和事件驱动&#xff08;Event Driven&#xff09;的简单的并具有安全性能的脚本语言。 JavaScript 特性 JavaScript 是解释性语言&#xff0c;而不是编译性语言…...

UbuntuServer22.04配置静态IP地址

查看网络配置文件 使用命令, 查看网络配置文件 ls -l /etc/netplan/输出如下(文件名可能不同&#xff0c; 以实际查询为准) -rw------- 1 root root 191 Mar 17 03:30 00-installer-config.yaml编辑文件即可修改网络配置 sudo vim /etc/netplan/00-installer-config.yaml配…...

vue3 打印局部网页、网页下载为图片、下载为pdf-自动分页,几行代码搞定

经常有一些需求&#xff0c;要将网页保存为一张图片&#xff0c;感觉异常困难&#xff0c;这里发现一个简单的办法。 这么简单&#xff0c;直接一句哇塞&#xff0c;老板&#xff1a;马上完成任务。 先安装几个依赖 npm i howuse html2canvas jspdf 下载图片代码 <button …...

力扣hot100:34. 在排序数组中查找元素的第一个和最后一个位置(二分查找的理解)

我们知道使用二分查找能找到值所在的位置。假如我们在找到值后仍然不断的更新指针会发生什么&#xff1f;我们可以利用这一点来找到最左边的以及最右边的值。 如果当nums[mid]target时&#xff0c;使得 rightmid-1&#xff0c;那么最终会使得target在right的右边。 如果当nums[…...

几何相互作用GNN预测3D-PLA

预测PLA是药物发现中的核心问题。最近的进展显示了将ML应用于PLA预测的巨大潜力。然而,它们大多忽略了复合物的3D结构和蛋白质与配体之间的物理相互作用,而这对于理解结合机制至关重要。作者提出了一种结合3D结构和物理相互作用的几何相互作用图神经网络GIGN,用于预测蛋白质…...

2024最新版使用PyCharm搭建Anaconda

2024最新版使用PyCharm搭建Anaconda 因为pycharm自带的包不全&#xff0c;或者下载的时候比较慢&#xff0c;所以我们直接用anaconda的包&#xff0c;毕竟我们以后还会学到很多的包&#xff0c;不多说&#xff0c;直接开干&#xff01; 一、下载Pycharm、Anacoda pycharm中文网…...

前台于后台项目

一&#xff1a;技术栈 前台&#xff1a;vue3element plus 后台&#xff1a;reactant desgin 二&#xff1a;项目中的问题&#xff1a; 多人协同开发导致样式冲突 ui框架中组件的使用 ui框架中组件样式的修改 精度缺失问题 框架的使用 三&#xff1a;解决方案&#xff1a; …...

廊坊网站制作推广/农产品网络营销方案

2019独角兽企业重金招聘Python工程师标准>>> 本文研究时的环境是CentOS release 6.4&#xff0c;内核版本2.6.32-358.el6.x86_64&#xff0c;python2.6.6 内容&#xff1a;关于字符串的两个魔术方法__str__() 、__unicode__() 两个函数str() 、unicode() 类型转换en…...

潮州市建设局官方网站/广告软文小故事800字

[Java教程]深入理解java虚拟机(6)0 2016-05-27 07:00:45其实关于线程的使用&#xff0c;之前已经写过博客讲解过这部分的内容&#xff1a;http://www.cnblogs.com/deman/category/621531.htmlJVM里面关于多线程的部分&#xff0c;主要是多线程是如何实现的&#xff0c;以及高效…...

wordpress网站框架/博客优化网站seo怎么写

在这篇文章里&#xff0c;我们将描述一个基于WEB应用下避免不合法的内容注入。 我们要在一个行为里使用htmlpurifier类&#xff0c;用这种行为可以加强任何模型并表明各属性我们想让它们XSS安全。 我写了以下行为: class CSafeContentBehavior extends CActiveRecordBehavior {…...

wordpress淘宝客单页/百度seo怎么优化

数据混乱 最近在多个系统上发现php redis驱动在高并发下&#xff0c;存在数据获取混乱的问题 具体表现为 lpush key1一个json&#xff0c;lpop key1出来的是set key2 xxx的值。 lpush key1一个json&#xff0c;lpop key1出来 ‘OK’字符串 以上两种情况在尝试更换驱动版本后…...

两学一做党员考试网站/宁德市医院东侨院区

第一章 两个夜晚&#xff0c;两个黎明[一]死亡之夜就像风暴来临前的序幕&#xff0c;那些骇人的狂暴都隐藏于平静的海面之下&#xff0c;看不出一丝剧变的征兆。郭凯和往常一样&#xff0c;守着他生意清淡的水果摊&#xff0c;百无聊赖地打着盹&#xff0c;直到筐里的蜜桃外皮…...

网站论坛怎么做/抖音推广佣金平台

2019年贵州省考公务员报名时间&#xff0c;贵州省考难&#xff1f;如何选择省考职位贵州有一个群体最近忙得热火朝天&#xff0c;只是因为贵州省公务员快要开始报名了。也有不少小伙伴很纠结&#xff0c;该怎么报名&#xff1f;报什么职位好呢&#xff1f;只为纠结竞争压力究竟…...