2060. 奶牛选美

2060. 奶牛选美 - AcWing题库

思路:只有两个连通块,先标记一个连通块。之后将这个连通块全部放入队列跑一个bfs即可。

#include <bits/stdc++.h>
using namespace std;
const int N = 121;
int fx[] = {0, 0, 1, -1};
int fy[] = {1, -1, 0, 0};
bool vis[N][N];
string ph[N];
struct no {int x,y,cnt;
};
int main()
{int n,m; cin>>n>>m;for(int i = 0; i < n; ++i) cin>>ph[i];bool ok = false;for(int i = 0; i < n; ++i) {for(int j = 0; j < m; ++j) {if(ph[i][j] == 'X') {auto dfs = [&](auto &&self, int x, int y) -> void {vis[x][y] = 1;for(int i = 0; i < 4; ++i) {int xx = x + fx[i], yy = y + fy[i];if(xx < 0 || xx >= n || yy < 0 || yy >= m) continue;if(ph[xx][yy] == '.' || vis[xx][yy]) continue;self(self, xx ,yy);}};dfs(dfs,i,j);ok = true;break;}}if(ok) break;}queue<no> q;for(int i = 0; i < n; ++i) {for(int j = 0; j < m; ++j) {if(vis[i][j]) q.push({i, j, 0});}}while(q.size()) {auto tmp = q.front(); q.pop();for(int i = 0; i < 4; ++i) {int xx = tmp.x + fx[i], yy = tmp.y + fy[i];if(xx < 0 || xx >= n || yy < 0 || yy >= m) continue;if(vis[xx][yy]) continue;vis[xx][yy] = 1;if(ph[xx][yy] == 'X') {cout<<tmp.cnt<<endl;return 0;}q.push({xx, yy, tmp.cnt + 1});}}
}

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

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

相关文章

在线随机密码生成器源码

纯HTML&#xff0c;该去的已去掉&#xff0c;该简化的简化&#xff0c;最高支持32位混合随机密码生成。 源码下载&#xff1a;在线随机密码生成器源码

算法之美:二叉堆原理剖析及堆应用案例讲解及实现

什么是堆 堆(Heap)是计算机科学中一类特殊的数据结构&#xff0c;通常是一个可以被看做一棵完全二叉树的数组对象。 完全二叉树 只有最下面两层节点的度可以小于2&#xff0c;并且最下层的叶节点集中在靠左连续的边界&#xff0c;只允许最后一层有空缺结点且空缺在右边&#x…

《科技创新与应用》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答&#xff1a; 问&#xff1a;《科技创新与应用》是什么级别期刊&#xff1f; 答&#xff1a;省级&#xff1b;主管单位&#xff1a;黑龙江省科学技术协会&#xff1b;主办单位&#xff1a;黑龙江省创联文化传媒有限公司 问&#xff1a;《科技创新与应用》是核心期刊…

如何在OceanBase的OCP多节点上获取日志

背景 在使用OceanBase的OCP的过程中&#xff0c;因各种因素&#xff0c;我们可能需要对当前页面进行跟踪。在单一ocp节点环境下&#xff0c;我们自然可以直接在该节点上查找所需的日志。然而&#xff0c;当我们的环境中部署了多个ocp节点时&#xff0c;在排查问题时就会变得相…

google浏览器网站不安全与网站的连接不安全怎么办?

使用google谷歌浏览器访问某些网站打开时google谷歌浏览器提示网站不安全,与网站的连接不安全,您之所以会看到此警告,是因为该网站不支持https造成的怎么办? 目录 1、打开谷歌google浏览器点击右上角【┇】找到设置

【Canvas与艺术】五角星光芒四射的效果展示

【关键点】 三一渐变式光芒的实现。 【效果】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>光芒四射</title><st…

【Vue】响应式系统和依赖收集跟踪原理

为什么要依赖收集&#xff1f; 先举个栗子&#x1f330; 我们现在有这么一个 Vue 对象。 new Vue({template: <div><span>{{text1}}</span> <span>{{text2}}</span> <div>,data: {text1: text1,text2: text2,text3: text3} });然后我们…

当构造器参数较多时考虑用生成器

重叠构造器模式 ——不能很好地扩展: public class Person {private String name; // 必填private int age; // 必填private String address; // 可选private String email; // 可选private String phone; // 可选private String occupation; // 可选// 无参构造…

使用AOP实现打印日志

首先创建annotation.SystemLog类&#xff1a; package com.gjh.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target(ElementType.METHOD…

聊聊websocket opcode中的text / binary模式

webscoket 协议中有一个非常有意思的设计&#xff0c;在opcode内&#xff0c;对帧类型进行了区分&#xff1a;文本和二进制流。但这个区分并没有规定文本类型有类似于http协议中空行表示结束的说法&#xff0c;而且长度也是由帧头记录&#xff0c;也就是说&#xff0c;单纯从协…

你如何创建一个JUnit测试类,并编写一个基本的测试方法?在JUnit中,你如何设置和清理测试环境?

你如何创建一个JUnit测试类&#xff0c;并编写一个基本的测试方法&#xff1f; 创建一个JUnit测试类并编写一个基本的测试方法涉及以下几个步骤&#xff1a; 添加JUnit依赖&#xff1a; 首先&#xff0c;确保你的项目中已经包含了JUnit的依赖。如果你使用的是Maven或Gradle等构…

Polar靶场web(三)

期待得到某一件事物的时候&#xff0c;才是最美好的。 签到 发现不能提交&#xff0c;看一下f12 发现提交按钮被禁用了&#xff0c;且最大输入9个字符&#xff0c;我们可以改一下。 现随便提交一个发现要提交ilovejijcxy session文件包含 发现有文件包含&#xff0c;那先包含…

2.java openCV4.x 入门-hello OpenCV

专栏简介 &#x1f492;个人主页 &#x1f4f0;专栏目录 点击上方查看更多内容 &#x1f4d6;心灵鸡汤&#x1f4d6;我们唯一拥有的就是今天&#xff0c;唯一能把握的也是今天 &#x1f9ed;文章导航&#x1f9ed; ⬆️ 1.环境搭建 ⬇️ 3.Mat之构造函数与数据类型 hell…

【MySQL】DML的表操作详解:添加数据&修改数据&删除数据(可cv例题语句)

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

[Linux]基础IO(上)--理解文件系统调用、文件描述符、万物皆文件

一、文件的理解 每种语言都有进行文件操作的函数接口&#xff0c;例如C语言的fopen、fwrite、fprintf等等&#xff0c;但是进行文件操作的前提是代码已经跑起来&#xff0c;因为文件的打开与关闭要通过CPU来运行程序代码&#xff0c;所以打开文件的本质是进程打开文件&#xff…

iMazing2024功能强大的iPhone和iPad管理工具

iMazing是一款功能强大的iPhone和iPad管理工具&#xff0c;确实可以作为iTunes的替代品进行数据备份。以下是一些关于iMazing的主要特点和功能&#xff1a; 设备备份&#xff1a;iMazing可以备份iOS设备上的所有数据&#xff0c;包括照片、视频、音乐、应用程序等。与iTunes相比…

使用uni-app开发微信小程序并实现页面间的跳转

一、下载需要的开发工具 HBuilderX 微信开发者工具 HBuilderX HBuilderX-高效极客技巧 (dcloud.io) 微信开发者工具 下载 / 开发版更新日志 (qq.com) 二、新建项目 通过vue-cli命令行创建项目 参考&#xff1a; uni-app官网 (dcloud.net.cn) 2.1全局安装 vue-cli npm i…

C++经典面试题目(十一)

1. final和override关键字 在C中&#xff0c;final 和 override 是两个用于类继承和成员函数重写的关键字&#xff0c;它们主要在面向对象编程的上下文中使用&#xff0c;以增强代码的可读性和安全性。 1. final 关键字 final 关键字主要有两种用法&#xff1a; 用于类&…

最小公约数 最大公倍数 同余原理

1.最小公约数 int gcd(int a,int b) {return b0 ? a : gcd(b,a%b); }int main() {int x,y;cin>>x>>y;cout<<gcd(x,y);return 0; } 每一次调用gcd传进去的两个值&#xff0c;若b为零则输出a&#xff0c;否则再次调用gcd&#xff0c;传入b&#xff0c;a%b 2.最…

Mysql数据备份与恢复实战

文章目录 备份类型备份内容备份工具mysqldump备份 实战案例&#xff1a;恢复误删除的表准备工作2:30完全备份完全备份后更新数据表10:00误删students表需要恢复还原的状态开始还原恢复 为什么要备份&#xff1f; 备份是为了&#xff1a;灾难恢复&#xff1a;硬件故障、软件故障…