第十四届蓝桥杯真题Python c组F.棋盘(持续更新)

devtools/2024/9/29 16:28:57/
  • 博客主页:音符犹如代码
  • 系列专栏:蓝桥杯
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

【问题描述】
        小蓝拥有 n × n 大小的棋盘,一开始棋盘上全都是白子。小蓝进行了m次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色,黑色棋子变为白色)。请输出所有操作做完后棋盘上每个棋子的颜色。

【输入格式】
        输入的第一行包含两个整数n,m,用一个空格分隔,表示棋盘大小与操作数。
        接下来m行每行包含四个整数 X1,Y1,X2,Y2,相邻整数之间使用一个空格分隔,表示将在X1至X2行和Y1至Y2列中的棋子颜色取反。

【输出格式】
        输出n行,每行n个0或1表示该位置棋子的颜色。如果是白色则输出0,否则输出1。

【样例输入】
3 3
1 1 2 2
2 2 3 3
1 1 3 3

【样例输出】
001

010

100

python">def flip_chessboard(n, m, operations):  # 初始化一个(n+2) x (n+2)的二维数组pre,用于存储前缀和  # 多出的两行和两列是为了方便处理边界情况,避免在计算前缀和时越界  pre = [[0] * (n + 2) for _ in range(n + 2)]  # 处理每个操作,更新前缀和数组pre  for x1, y1, x2, y2 in operations:  # 在(x1, y1)位置增加1,表示开始翻转  pre[x1][y1] += 1  # 在(x1, y2+1)位置减去1,表示在y2之后不再翻转  pre[x1][y2 + 1] -= 1  # 在(x2+1, y1)位置减去1,表示在x2之后不再翻转  pre[x2 + 1][y1] -= 1  # 在(x2+1, y2+1)位置增加1,这是为了抵消之前的减法,确保其他区域不受影响  pre[x2 + 1][y2 + 1] += 1  # 初始化最终棋盘状态ans,并根据前缀和计算每个位置的实际翻转次数  ans = [[0] * n for _ in range(n)]  for i in range(1, n + 1):  for j in range(1, n + 1):  # 计算当前位置的前缀和  pre[i][j] += pre[i - 1][j] + pre[i][j - 1] - pre[i - 1][j - 1]  # 根据前缀和的奇偶性确定棋子的颜色  ans[i - 1][j - 1] = 1 if pre[i][j] % 2 != 0 else 0  # 输出棋盘状态  for row in ans:  print(''.join(str(cell) for cell in row))  # 输入处理  
if __name__ == "__main__":  # 从标准输入读取n和m  n, m = map(int, input().split())  # 读取所有操作,并存储在operations列表中  operations = [tuple(map(int, input().split())) for _ in range(m)]  # 调用函数翻转棋盘并输出结果  flip_chessboard(n, m, operations)


http://www.ppmy.cn/devtools/118768.html

相关文章

大数据 flink 01 | 从零环境搭建 简单Demo 运行

什么是Flink Flink是一个开源的流处理和批处理框架,它能够处理无界和有界的数据流,具有高吞吐量、低延迟和容错性等特点 Flink 可以应用于多个领域如:实时数据处理、数据分析、机器学习、事件驱动等。 什么是流式处理?什么是批处理 流处理…

AI大火的这几年,微软做了什么有效的工作

在过去几年中,人工智能(AI)领域蓬勃发展,微软作为全球领先的科技公司,在这一领域进行了大量的投入和创新。微软不仅在AI技术研究和开发上做出了显著贡献,还通过其产品和服务推动了AI技术的实际应用。下面从…

jenkins汉化一部分问题

安装插件 Manage Jenkins - plugin Locale pluginLocalization: Chinese (Simplified): 默认已经安装需要确认 配置语言 Manage Jenkins - Appearance(和以前不一样) 将语言设定为zh_US,Jenkins切换为英文。调用restart重启Jenkins:http://jenkisn网…

数据结构:树的定义及其性质

树的定义 树是一种重要的非线性数据结构,树作为一种逻辑结构,同时也是一种分层结构。具有以下两个特点: 1.树的根结点没有前驱,除根结点意外的节点只有一个前驱 2.树中所有结点都可以有0个或多个后继 树结构在多个领域都有广泛…

828华为云征文|华为云Flexus X实例Windows Server 2019安装护卫神防火墙——为企业运维安全发挥重要作用!!!

前言 公司最近需要选购一台华为云Windows服务器部署产品应用,但是考虑到Windows的安全性至关重要。护卫神防火墙无疑是守护Windows系统安全的得力助手。 华为云以其强大的性能和稳定的服务,为众多企业和开发者提供了可靠的云端基础设施。在网络环境日益复…

android13 系统默认设置静态IP

android11系统的时候&#xff0c;默认静态IP设置很简单&#xff0c;修改frameworks\base\core\res\res\values\config.xml中的config_ethernet_interfaces字符数组&#xff0c;在里面添加静态IP的参数就可以了。 <string-array translatable"false" name"c…

水波荡漾效果+渲染顺序+简单UI绘制

创建场景及布置 创建新场景Main,在Main场景中创建一个plane物体&#xff0c;命名为WaterWavePla,具体数值及层级面板排布如下&#xff1a; 编写脚本 创建一个文件夹&#xff0c;用于存放脚本&#xff0c;命名Scripts,创建一个子文件夹Effect,存放特效相关脚本&#xff0c;创建…

python学习记录4

目录 (1)位运算 (2)运算的优先级 (1)位运算 位运算是将数字看做二进制数来运算的&#xff0c;位运算分为按位与&#xff08;&&#xff09;、按位或&#xff08;|&#xff09;、按位异或&#xff08;^&#xff09;、按位取反(~)。还有移位运算&#xff08;左移位<<、…