洛谷B4040 [GESP202409 四级] 黑白方块 题解

news/2025/9/23 22:18:59/文章来源:https://www.cnblogs.com/zpy-code/p/19108257

原题传送门

前言

天啊!上一周刚刚考完 \(CSP-J\) ,这一周就得去考 \(GESP\) 4级 (是的,你没有听错,我3级过了!)
所以,做了一道简单的题之后,我又来写题解了!
(仍然是WA++)

题目解析

哇,这题可真长啊!什么 (可恶的) 小杨有一个 \(n\)\(m\) 列的网格图,其中每个格子要么是白色,要么是黑色……之类的。简单总结一下:

  1. 每一个测试点里有一共 \(t\) 组数据,老规矩:用 memset() 做初始化。
  2. 每组测试数据包含:一个 \(n\)\(m\) 以及一个大小为 \(n \times m\) 的二维矩阵。
  3. 让你找是否有一个如下的连续的子矩阵 (你应该知道连续子矩阵是啥意思吧?)
0000
0110
0110
0000
  1. 如果有,输出 Yes 否则,输出 No 即可。

思路解析

这道题看似需要复杂的算法,实际上…… 看看这感人的数据规模:

对全部的测试数据,保证 \(1 \leq t\leq 10\)\(1 \leq n,m \leq 100\)

也就是说,其实只需要模拟即可通过!
即,遍历所有的可能的子矩阵起点:

for (int i = 1; i <= n - 3; i++) {for (int j = 1; j <= m - 3; j++) {if (check(i, j))flag = true;}
}

接着在 check() 函数里去判断,以 (i,j) 为起点的 \(4 \times 4\) 矩阵是否合规。

bool check(int x, int y) {for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {if (c[i + x][j + y] != g[i][j])return false;}}return true;
}

唉,同样是2024年9月的题,3级第一题(详见它)就如此难,暴力也过不了。
而4级的题目,就非常人性化!

AC Code

点击查看完整代码

#include <bits/stdc++.h>
using namespace std;
const int N = 110, M = 110;
int n, m;
int a[N][M];
int t;
int mp[4][4] = {{0, 0, 0, 0},{0, 1, 1, 0},{0, 1, 1, 0},{0, 0, 0, 0}
};bool check(int x, int y) {for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {if (a[x + i][y + j] != mp[i][j]) {return false;}}}return true;
}int main() {cin >> t;while (t--) {memset(a, 0, sizeof(a));cin >> n >> m;for (int i = 1; i <= n; i++) {string s;cin >> s;for (int j = 1; j <= m; j++) {a[i][j] = s[j - 1] - '0';}}bool flag = false;for (int i = 1; i <= n - 3; i++) {for (int j = 1; j <= m - 3; j++) {if (check(i, j)) {flag = true;break;}}if (flag) break;}if (flag) cout << "Yes" << endl;else cout << "No" << endl;}return 0;
}

完结撒花!(补药再抄代码了!)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SerpApi:一站式搜索引擎数据抓取API完全指南

本文详细介绍SerpApi这一实时搜索引擎数据抓取API的技术特性,包括GET请求示例、多语言库集成、JSON结构化数据输出、极速模式配置以及地理位置搜索等核心功能,帮助开发者快速集成搜索引擎数据到应用程序中。SerpApi:…

网站建设过程中什么最重要百度竞价怎么开户

1、 session持久化是什么&#xff1f; web服务器把 session中存储的属性存储到本地磁盘或数据库中&#xff1b; 2、为什么需要持久化&#xff1f; 因为 session是服务器维护会话状态的对象&#xff0c;即便客户端关闭连接或客户端长时间没有访问&#xff0c;服务器还依然存储…

网站备案中更名菜单设计制作模板免费

1. 获取时间 时间是个重要的编程元素&#xff0c;可用于计算间隔、同步服务器以及控制超时。 计算机中的时间分为以下两种形式&#xff1a; 墙钟时间&#xff1a;以12或24小时为周期不断重复&#xff0c;不同的地区和季节会因时区或夏令时而异。单调时间&#xff1a;从一个时…

中山公司网站建设小型企业网站建设报告

一. Windows下为PowerShell/CMD/Git设置代理 —————————————————————————————————————————————————————— 二. [WinError 10061] 由于目标计算机积极拒绝&#xff0c;无法连接。 keyerror:192。 HTTP Error 403: Forbidd…

海丰网站建设wordpress如何置顶

我一开始的想法是&#xff1a;后序遍历是左右根&#xff0c;那么第一个数小于第二个数&#xff0c;第二个数大于第三个数&#xff0c;然后从第三个数开始又循环&#xff0c;显然错了&#xff0c;因为我这种是理想情况&#xff0c;是一个满二叉树。正确的解法是: class Solutio…

工信部网站备案系统登录机械网站建设公司

目录 一、了解什么是泛性编程 二、模版 1.函数模版 1.1 函数模板概念 1.2 函数模板格式 1.3 函数模板的原理 1.4 函数模板的实例化 1.5 模板参数的匹配原则 2.类模板 2.1 类模板的定义格式 2.2 类模板的实例化 3. 非类型模板参数 4. 模板的特化 4.1 概念 4.2 …

网站建设的价重庆网站建设团队

Yocto .bb 文件字段解析 本文详细讲解了 Yocto .bb 文件中各字段的作用和用法&#xff0c;包括 SECTION、SRC_URI、SUMMARY 等&#xff0c;旨在帮助开发者更好地理解和使用 Yocto 构建系统。 目录 1. SECTION 字段 1.1 SECTION 的作用1.2 SECTION 的用法1.3 如何使用 SECTIO…

人工智能ai写作网站免费asp net网站开发语言的特点

这里小程序开发中容易犯的错误-1写自定义目录标题 给客户做一个程序。需要在页面加载的时候在onLoad(options){}中加载定义好的函数&#xff0c;代码如下 onLoad(options) {get_week_()},运行时老报错 后来修改为正确的代码 onLoad(options) {this.get_week_()//必须加this},再…

wordpress建站教程简书建筑网站资料

分享88个表单按钮JS特效&#xff0c;总有一款适合您 88个表单按钮JS特效下载链接&#xff1a;https://pan.baidu.com/s/1v-qcl8bv2kxZ8a98Xo9UAg?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;…

环保类网站建设电力建设专家答疑在哪个网站

对于本题 我感觉还是链表做起来舒服 数组也可以做 但是数组需要去控制循环 不太好控制 我之前搞了 最后看别人的实现 但是链表搞了一次就搞好了 香的嘞~ 下面是代码 用单链表实现循环 再去删除要删除的人 5个人 数到2 你们在纸上画图 我就不画了 对于数组实现你们可以去…

补whk时的鲜花(持续更新)

我的 ACGN 观 前排提示:本篇文章灵感来源转弯这里有点长所以单发的闲话 其实说起来我的 acg 入圈时间不是很长,远远达不到某位机房巨犇幼儿园开始游玩 galgame 的壮举( 首先是 A (Animation) 这绝对是我涉足领域最深…

网站建设投标书免费自己做网站选什么好

第一章 数据分析概况 1.1数据分析定义 数据分析是指根据分析目的&#xff0c;用适当的分析方法及工具&#xff0c;对数据进行处理分析&#xff0c;提取有价值的信息&#xff0c;形成有效结论的过程。 1.2数据分析作用 数据分析在我们日常工作中主要有三大作用&#xff0c;…

【Rust管理MySql】Actix Web 框架结合 MySQL 数据库进行交互

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

审美积累 | 这样的科技网站怎么做?

审美积累 | 这样的科技网站怎么做?1. 版式设计层次清晰: 顶部大标题 “ECOMMERCE MANAGEMENT SYSTEM” 占据视觉中心,字体粗壮大写,突出核心信息。 信息区块化: 界面内容通过卡片、图表、地图和数据进行模块化展示…

css 使用记录 随笔

1,使用grid,item内容溢出容器外 不能使用1fr,而要用% 原代码 .demo{display: grid;grid-template-columns: repeat(3,1fr); } 修改后 .demo{display: grid;grid-template-columns: repeat(3,33.3%); } 2,父元素通过…

网题 做问卷的网站自己做的网页发布

背景 在目标检测任务中&#xff0c;评估不同对象之间的重叠情况是至关重要的&#xff0c;而IOU&#xff08;Intersection Over Union&#xff09;是衡量这种重叠程度的重要指标。本文将介绍如何编写一个Python脚本&#xff0c;通过并行化处理DOTA格式的标注文件&#xff0c;统…

口碑好的坪山网站建设美食网站设计欣赏

Redisson是什么 怎么用 算是面试题会问到的 redisson 是一个用于java简单易用的redis客户端&#xff0c;它封装了常见的分步式操作和并发控制功能&#xff0c;提供了丰富的apl和功能&#xff0c;使得开发人员能够轻松与redis进行交互 在spring Boot中使用redisson 需要进行以下…

网站定制开发流程无锡建设网站的公司哪家好

一. 阻塞信号 1.信号的相关概念     (1) 递达: 实际执行信号的处理动作称为信号的递达     (2) 未决: 信号从产生到递达之间的过程叫做信号的未决     (3) 阻塞: 进程可以选择阻塞某个信号, 被阻塞的信号产生时将保持在未决状态, 直到进程解除该信号的屏蔽, 才…

内蒙建设厅网站怎么查建筑电工证中国菲律宾会打仗吗现在

协程&#xff08;Coroutine&#xff09;是一种用户态的轻量级线程&#xff0c;它可以在单线程内实现多个执行线程的切换和调度&#xff0c;而无需依赖操作系统的线程管理机制&#xff08;简单来说可以认为协程是线程里不同的函数&#xff0c;这些函数之间可以相互快速切换&…

网站做备案需要多久高端品牌网站建设优势

提到registry v2&#xff0c;主要改进是支持并行pull镜像&#xff0c;镜像层id变成唯一的&#xff0c;解决同一个tag可能对应多个镜像的问题等等。如果还不太了解&#xff0c;可以且听我细细道来。首先不得不说的是v2 新加了一个概念Digest他是基于内容进行寻址(Content-addres…