识海社区打卡-4

news/2024/11/15 4:05:48/文章来源:https://www.cnblogs.com/coloury/p/18545081

今天打卡大模拟

Problem - 1365D - Codeforces

image-20241113234004941

大模拟确实恶心人,但作为最臭的屎平时还是得多吃点,大模拟的特点是思路不算很难但代码真的很长很长,一个不小心哪里写得有问题查错就是半天,各种细节都要很注意,对于提升自己查错能力和快速写题能力还是很有帮助的,这种屎虽然恶心但是就是得多吃。

简单说下题意,大概就是给定一个网格图,网格图有四种符号,#代表墙,B代表bad坏人,G代表good好人, "."代表空白,可以把一些空白变成墙,然后使所有好人能跑走,坏人留下,并且只有跑到[n,m]才算逃出生天。

思路很简单,就是把所有坏人都关起来,好人不能和坏人相邻,并且好人没有被关起来的。

代码实现

#include <bits/stdc++.h>
using namespace std;
const char nl = '\n';
#define all(x) (x).begin(), (x).end()
typedef long long ll;
typedef long double ld;
typedef long long int lli;
const int MOD = 1'000'000'007;
constexpr int inf = 1e9;constexpr int dx[] = {0, 0, -1, 1}, dy[] = {-1, 1, 0, 0};void solve()
{int n, m;cin >> n >> m;vector<string> a(n);int res = 0;for (int i = 0; i < n; i++){cin >> a[i];res += count(a[i].begin(), a[i].end(), 'G');}if (res == 0){cout << "YES" << nl;return;}a[n - 1][m - 1] = 'G';for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){if (a[i][j] == 'B'){for (int k = 0; k < 4; k++){int x = j + dx[k], y = i + dy[k];if (x < m && x >= 0 && y >= 0 && y < n){if (a[y][x] == 'G'){cout << "NO" << nl;return;}if (a[y][x] == '.'){a[y][x] = '#';}}}}}}vector<vector<bool>> vis(n, vector<bool>(m));queue<pair<int, int>> q;vis[n - 1][m - 1] = 1;q.emplace(n - 1, m - 1);while (!q.empty()){auto [i, j] = q.front();q.pop();for (int k = 0; k < 4; ++k){int x = i + dx[k], y = j + dy[k];if (0 <= x && x < n && 0 <= y && y < m && a[x][y] != '#' && !vis[x][y]){vis[x][y] = true;q.emplace(x, y);}}}for(int i = 0;i < n;i++){for(int j = 0;j < m;j++){if(a[i][j] == 'G' && !vis[i][j]){cout << "NO" << nl;return;}}}cout << "YES" << nl;
}int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int t = 1;cin >> t;while (t--){solve();}return 0;
}

代码的思路就是先查找有没有好人,如果没有就直接把出口堵上就好了所以肯定是yes因为题目保证了出口是空白

其次是把最后的位置变为一个好人,因为当好人和坏人分别在出口的上方和左方时是不行的,直接把这种情况算到好人和坏人相邻就行,然后查找好人与坏人相邻的情况,并且把所有坏人都关上。

最后是从出口开始查找对于所有通出口的地方都标记为1,所有不通的地方都标为0,然后查找好人被关的情况就行。

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

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

相关文章

《Django 5 By Example》阅读笔记:p54-p75

《Django 5 By Example》学习第3天,p54-p75总结,总计22页。 一、技术总结 1.分页 (1)分页:Paginator (2)页数不存在处理: EmptyPage, PageNotAnInteger 2.class-based views(类视图) (1)为什么使用类视图? 1)Organize code related to HTTP methods, such as GET, POST, o…

11.18

实验17:解释器模式(选作) 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解解释器模式的动机,掌握该模式的结构; 2、能够利用解释器模式解决实际问题。[实验任务一]:解释器模式 某机器人控制程序包含一些简单的英文指令,其文法规则如下: expression…

项目冲刺11.13

这个作业属于哪个课程 计科22级34班这个作业要求在哪里 作业要求这个作业的目标 进行为期七天的项目冲刺并记录前言 本篇博客是项目冲刺的第五篇,七篇博客的汇总如下:博客汇总第一篇博客第二篇博客第三篇博客第四篇博客第五篇博客第六篇博客第七篇博客团队简介队名 拖延是你不…

Z-Library电子图书馆官方地址入口 国内最新可用镜像网址入口 客户端(持续更新)

Z-Library:自由获取知识的电子图书馆Z-Library(简称Z-Lib)。曾用名BookFinder。是一个提供广泛学术资源的影子图书馆网站。用户可以在此下载期刊、文章以及各类书籍。 其藏书量超过1000万本书籍和8000万篇文章。尽管因版权问题。Z-Library在2022年11月3日遭到封S。但它通过新…

智能驱动下的客户运营与知识管理整合策略

在数字化转型的浪潮中,智能技术的应用正深刻改变着企业的运营模式和客户服务方式。智能驱动下的客户运营与知识管理整合策略,旨在通过智能化手段,优化客户体验,提升运营效率,同时实现知识的有效管理和利用。本文将深入探讨这一策略的核心价值、实施路径及实践案例,为企业…

黑神话吉吉国王版搞笑版总共4关(附下载链接)

话不多说,上图吉吉国王版黑神话点击下载

在Clion中快速生成函数中形参注释及添加函数说明

快速生成函数中形参注释 只需要在函数前输入/**,然后按回车,这样即可快速生成如下函数形参注释。 新增函数描述 在设置界面中的搜索框中输入Code Generation,然后勾选 如下选择框,这样就可以在如上生成的代码快中新增函数描述栏 说明:有些版本可能找不到,按如下位置查找…

痞子衡嵌入式:在i.MXRT启动头FDCB里配置串行NOR Flash多个寄存器的注意事项

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是在FDCB里配置串行NOR Flash多个寄存器的注意事项。关于使用 i.MXRT 启动头 FDCB 来设置 Flash 内部寄存器,痞子衡写过如下两篇文章,在进入本文之前,建议大家先阅读下这两篇文章,有个初步了解。《在FDCB里…

Nginx_基础

Nginx_基础 Nginx 基础一、Nginx 简介1.1 简介1.2 正向代理和反向代理 二、基本命令 三、配置格式3.1 基本配置格式3.2 时间和空间单位3.3 官方配置模板 四、部署静态网站4.1 增加配置4.2 检查配置4.3 重载配置 五、实现负载均衡5.1 部署后台服务5.2 负载均衡配置5.3 负载均衡策…

【Unity】对TMPAsset打包记录

TMPAsset中对于SourceFontFile引用,不会打包到AssetBundle中

4G核心网学习之4G EPS 中的 PDN Connection

PDN PDN(Packet Data Network分组数据网络),严格意义上讲可以分为内部 PDN 和外部 PDN:内部 PDN 即 EPS 系统中的分组数据网络,是 EPS 系统实体(e.g. MME、HSS、SGW、PGW、PCRF)之间的网络通信;而外部 PDN 即 EPS 系统之外的分组数据网络,例如:3GPP 网络 CDMA1X、Int…

spring初始学习

开始学习了容器 bean 依赖注入 Spring框架是一个开源的Java平台,它提供了全面的基础设施支持,以便你可以更容易地开发Java应用程序。以下是Spring框架中关于容器、Bean和依赖注入的一些基础知识点:Spring容器(Spring Container) Spring容器是Spring框架的核心,负责实例化…