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

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

原题传送门

前言

天啊!上一周刚刚考完 \(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.zskr.cn/news/10556.html

相关文章:

  • 代码随想录算法训练营第七天 |第454题.四数相加II、383. 赎金信、第15题. 三数之和
  • 9月23号
  • 第一次个人编程作业-论文查重
  • 差分电压
  • 【ChipIntelli 系列】ASR部分——合成语言模型和多网络(多语种)切换
  • dots.llm1:小红书开源的 MoE 架构大语言模型 - 实践
  • 软工9.23
  • 本地部署qwen-0.6b
  • 25分钟小练习
  • markdown 使用指南
  • [视图功能8] 图表视图:柱状图、折线图与饼图配备实战
  • 近十年 CSP-J 复赛知识点分布表
  • 软件工程:构建数字世界的基石
  • Avalonia 学习笔记07. Control Themes(控件主题)
  • matter 协议的架构;
  • 相机标定(Camera Calibration)原理及步骤:从 “像素模糊” 到 “毫米精准” 的关键一步 - 实践
  • nRF54LM20A USB
  • 《CBI 技术有聊》对话 OpenCSG:智能体落地困境与企业转型的必然路径
  • 2025/9/23
  • Tita:更频繁的绩效考核周期的好处
  • 完整教程:DCS+PLC协同优化:基于MQTT的分布式控制系统能效提升案例
  • 详细介绍:【Linux】Linux文件系统详解:从磁盘到文件的奥秘
  • CCPC秦皇岛 2023 M Inverted
  • Hetao P10588 十载峥嵘桀骜 题解 [ 紫 ] [ 树的直径 ] [ 矩阵加速 DP ] [ 状态设计优化 ]
  • Julia 实现基于模板匹配的验证码识别方法
  • 第9节-子查询-ALL - 详解
  • 谈谈对软件工程的理解
  • [PaperReading] MemGPT: Towards LLMs as Operating Systems
  • NLP:驱动人工智能迈向 “理解” 与 “对话” 的核心引擎 - 教程
  • 实用指南:网站抓包怎么做?(网站抓包教程 HTTPS 抓包 浏览器抓包 服务器端流量分析 网站安全与调试)