当前位置: 首页 > 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;只能自己摸索或者…...

gte-base-zh在AIGC内容审核中的应用

gte-base-zh在AIGC内容审核中的应用 最近和几个做AIGC应用的朋友聊天&#xff0c;大家普遍反映一个头疼的问题&#xff1a;内容审核。用户生成的内容五花八门&#xff0c;数量巨大&#xff0c;单靠人工审核&#xff0c;不仅成本高&#xff0c;还容易漏掉一些打擦边球或者变着花…...

告别手动复制粘贴:MeterSphere参数提取功能详解,让你的接口自动化测试效率翻倍

MeterSphere参数提取实战&#xff1a;构建动态接口测试链的三大高阶技巧 在持续集成环境中&#xff0c;接口自动化测试往往面临一个关键挑战&#xff1a;如何让不同接口之间实现数据动态传递&#xff1f;传统的手动复制粘贴不仅效率低下&#xff0c;更难以应对复杂业务场景。Me…...

Audacity终极指南:5步掌握免费专业音频编辑全流程

Audacity终极指南&#xff1a;5步掌握免费专业音频编辑全流程 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 还在为音频编辑软件的高昂费用而犹豫&#xff1f;想要一款功能全面、完全免费的专业级音频处理工具&a…...

OpCore Simplify:开源工具驱动的OpenCore EFI高效配置技术方案

OpCore Simplify&#xff1a;开源工具驱动的OpenCore EFI高效配置技术方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 问题引入&#xff1a;Hacki…...

别再傻傻匀速拖滑块了!用Python模拟真人鼠标轨迹,轻松过Geetest验证码

突破验证码防线&#xff1a;Python模拟人类行为轨迹的实战艺术 验证码系统正变得越来越智能&#xff0c;Geetest等平台已经能够通过分析用户行为模式来区分人类和机器。传统的匀速滑块操作在这些系统面前几乎无所遁形。本文将带你深入理解现代验证码系统的工作原理&#xff0c;…...

DAMO-YOLO赛博朋克UI实战:CSS3神经突触动画+玻璃拟态设计解析

DAMO-YOLO赛博朋克UI实战&#xff1a;CSS3神经突触动画玻璃拟态设计解析 今天&#xff0c;我们来聊聊如何把一个顶级的AI视觉引擎&#xff0c;包装成一个让人看一眼就忘不掉的“赛博朋克控制台”。你可能会好奇&#xff0c;一个目标检测系统&#xff0c;界面做得再酷有什么用&…...

GLM-OCR镜像免配置优势:无需HuggingFace Token,离线环境安全可用

GLM-OCR镜像免配置优势&#xff1a;无需HuggingFace Token&#xff0c;离线环境安全可用 1. 什么是GLM-OCR及其核心价值 GLM-OCR是一个基于先进GLM-V编码器-解码器架构构建的多模态OCR识别模型&#xff0c;专门为复杂文档理解场景而设计。与传统的OCR工具不同&#xff0c;它不…...

学术探险家的秘密武器:书匠策AI,解锁课程论文新宇宙!

在学术的浩瀚星空中&#xff0c;每一位学子都是勇敢的探险家&#xff0c;怀揣着对知识的渴望&#xff0c;踏上探索未知的征途。而课程论文&#xff0c;则是这场探险中不可或缺的“星际导航图”&#xff0c;指引着我们穿越知识的迷雾&#xff0c;抵达真理的彼岸。但你是否曾遇到…...

从“玩概念”到“真落地”:AI智能体三大场景的突围之路

当行业不再为“大模型参数”狂欢&#xff0c;真正的价值开始浮现——客服自动化、内部知识库、办公Agent&#xff0c;正在成为AI智能体最先跑通商业闭环的三大场景。而决定成败的关键&#xff0c;已经从模型能力转向上下文设计、工具调用与反馈迭代。 2026年&#xff0c;大模型…...

科研写作效率提升300%:WPS-Zotero跨平台文献管理终极指南

科研写作效率提升300%&#xff1a;WPS-Zotero跨平台文献管理终极指南 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero WPS-Zotero是一款革命性的WPS Office插件&#xff0c;专…...