深度搜索算法2(c++)

红与黑

题目描述

有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑 色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。

输入

包括多组数据。每组数据的第一行是两个整数W和H,分别表示x方向和y方 向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。 每个字符表示一块瓷砖的颜色,规则如下: 1)‘.’:黑色的瓷砖;

2)‘#’:红色的瓷砖;

3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每组数据中唯一 出现一次。

当在一行中读入的是两个零时,表示输入结束。 输出 对每组数据,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数 时包括初始位置的瓷砖)。

【输入样例】

6 9 
. . . . # .
. . . . . #
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
# @ . . . #
. # . . # .

0 0

【输出样例】

45

#include <iostream>
#include <iomanip>
using namespace std;
char a[110][110];
int b[30][30];
int n,m;
int cnt = 1;
int di[] = {0,1,0,-1};
int dj[] = {1,0,-1,0};
void aaa(int,int);
int main()
{while(true){cin>>m>>n;if(m==0&&n==0){break;}int ii,jj;for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){cin>>a[i][j];if(a[i][j]=='@'){ii = i;jj = j;}}}aaa(ii,jj);cout<<cnt<<endl;}return 0;
}
void aaa(int i,int j)
{a[i][j] = '#';b[i][j] = cnt;for(int qqq = 0;qqq<4;qqq++){int ti = i+di[qqq];int tj = j+dj[qqq];if(ti>=0&&ti<n&&tj>=0&&tj<m&&a[ti][tj]!='#'){ cnt++;aaa(ti,tj);}}return;
}

泳池

题目描述

小C在一个排水系统不太好的学校上学。又是一个下雨天,学校里高低不平积了很多水。小C突发奇想:如果大雨一直 下,多久以后我可以在学校里游泳呢? 学校是 N x N 的坐标方格 grid 中,每一个方格的值 grid(i,j)表示在位置 (i,j) 的高度。现在开始下雨了。当时间为 t 时, 此时雨水导致方格中任意位置的水位为 t 。你可以从一个方格游向四周相邻的任意一个方格,但是前提是此时水位必 须同时淹没这两个方格。假定小C的游动是不耗时的。 现在小C从坐标方格的左上(0,0)出发。最少耗时多久他才能到达坐标方格的右下平台 (N-1, N-1)?

输入格式

第一行有一个整数N,以下是一个N*N 的方阵,代表各处的高度。

输入范围: 2 ≤ N ≤ 300 0 ≤ Height ≤ 10000000

输出格式

输出一个整数,代表最少等待时间T 样例输入

5
0 1 2 3 4
24 23 22 21 5
12 13 14 15 16
11 17 18 19 20
10 9 8 7 6

样例输出

16

样例解释

时间为16时,水位为16,此时才能保证(0,0) 和(4,4)是联通的(请自行找出一条通路)。

#include <iostream>
#include <iomanip>
using namespace std;
int n,m;
int a[310][310];
int cnt = 0;
int di[] = {0,1,0,-1};
int dj[] = {1,0,-1,0};
bool f = false;
void aaa(int,int);
int main()
{cin>>n;for(int i = 0;i<n;i++){for(int j = 0;j<n;j++){cin>>a[i][j];}}cnt = a[n-1][n-1];for(int i = 0;i<n;i++){for(int j = 0;j<n;j++){if(a[i][j]-a[n-1][n-1]>=0){a[i][j] = a[i][j]-a[n-1][n-1];}else{a[i][j] = 0;}}}while(true){aaa(0,0);if(f==true){break;}cnt++;for(int i = 0;i<n;i++){for(int j = 0;j<n;j++){if(a[i][j]>0){a[i][j]--;}}}}cout<<cnt;return 0;
}
void aaa(int i,int j)
{if(i==n-1&&j==n-1){f = true;return;}for(int qqq = 0;qqq<4;qqq++){int ti = i+di[qqq];int tj = j+dj[qqq];if(ti>=0&&ti<n&&tj>=0&&tj<n&&a[ti][tj]==0){a[ti][tj] = -1;aaa(ti,tj);a[ti][tj] = 0;}}return;
}

#include <iostream>
using namespace std;
int a[110][110];
int b[110][110];
int n,m;
int cnt = 0;
int cntt = 0;
int ma = -99999;
int di[] = {0,1,0,-1};
int dj[] = {1,0,-1,0};
void aaa(int,int);
int main()
{cin>>n>>m;for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){cin>>a[i][j];}}for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){if(b[i][j]==0){cnt++;aaa(i,j);ma = max(ma,cntt);cntt = 0;}}}cout<<cnt<<endl<<ma;return 0;
}
void aaa(int i,int j)
{cntt++;b[i][j] = 1;for(int qqq = 0;qqq<4;qqq++){int ti = i+di[qqq];int tj = j+dj[qqq];if(ti>=0&&ti<n&&tj>=0&&tj<m&&b[ti][tj]==0){if(qqq==0){if(a[i][j]==1||a[i][j]==2||a[i][j]==8||a[i][j]==3||a[i][j]==9||a[i][j]==10||a[i][j]==11||a[i][j]==0){aaa(ti,tj);}}if(qqq==1){if(a[i][j]==1||a[i][j]==2||a[i][j]==4||a[i][j]==3||a[i][j]==5||a[i][j]==6||a[i][j]==7||a[i][j]==0){aaa(ti,tj);}}if(qqq==2){if(a[i][j]==2||a[i][j]==4||a[i][j]==8||a[i][j]==6||a[i][j]==10||a[i][j]==12||a[i][j]==14||a[i][j]==0){aaa(ti,tj);}}if(qqq==3){if(a[i][j]==1||a[i][j]==4||a[i][j]==8||a[i][j]==5||a[i][j]==9||a[i][j]==12||a[i][j]==13||a[i][j]==0){aaa(ti,tj);}}}}return;
}

#include <iostream>
using namespace std;
char a[110][110];int n,m;int di[] = {0,1,0,-1};
int dj[] = {1,0,-1,0};
void aaa(int,int);
int main()
{int nn;cin>>nn;for(int iii = 0;iii<nn;iii++){cin>>n>>m;for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){cin>>a[i][j];}}for(int i = 0;i<n;i++){if(a[i][0]=='O'){aaa(i,0);}}for(int i = 0;i<n;i++){if(a[i][m-1]=='O'){aaa(i,m-1);}}for(int i = 0;i<m;i++){if(a[0][i]=='O'){aaa(0,i);}}for(int i = 0;i<m;i++){if(a[n-1][i]=='O'){aaa(n-1,i);}}cout<<endl;for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){if(a[i][j]=='O'){a[i][j] = 'X';}if(a[i][j]=='0'){a[i][j] = 'O';}cout<<a[i][j];}cout<<endl;}}return 0;
}
void aaa(int i,int j)
{a[i][j] = '0';for(int qqq = 0;qqq<4;qqq++){int ti = i+di[qqq];int tj = j+dj[qqq];if(ti>=0&&ti<n&&tj>=0&&tj<m&&a[ti][tj]=='O'){aaa(ti,tj);}}return;
}

 

走迷宫

描述

一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可 以走。 给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到)。

只能在水平方向或垂直方向走,不能斜着走。

输入

第一行是两个整数,R和C,代表迷宫的长和宽。

空地格子用'.'表示,有障碍物的格子用'#'表示。 迷宫左上角和右下角都是'.'

输出

输出从左上角走到右下角至少要经过多少步(即至少要经过多少个空地格子)。计算步数要包括起点和终点

样例输入

5 5
..###
#....
#.#.#
#.#.#
#.#..

样例输出

9

#include <iostream>
#include <iomanip>
using namespace std;
char a[50][50];
int n,m;
int si = 0,sj = 0,ei,ej;
int cnt = 0;
int mi = 99999;
bool f = false;
int di[] = {0,1,0,-1};
int dj[] = {1,0,-1,0};
void aaa(int,int);
int main()
{cin>>n>>m;for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){cin>>a[i][j];}}ei = n-1;ej = n-1;aaa(si,sj);cout<<cnt;return 0;
}
void aaa(int i,int j)
{if(i==ei&&j==ej){f = true;return;}cnt++;for(int qqq = 0;qqq<4;qqq++){int ti = i+di[qqq];int tj = j+dj[qqq];if(ti>=0&&ti<n&&tj>=0&&tj<m&&a[ti][tj]=='.'&&f==false){a[ti][tj] = '#';aaa(ti,tj);a[ti][tj] = '.';}}return;
}

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

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

相关文章

Vue.js ECharts使用

一、介绍 ECharts 是一个使用 JavaScript 实现的开源可视化库&#xff0c;涵盖各行业图表&#xff0c;满足各种需求。ECharts 提供了丰富的图表类型和交互能力&#xff0c;使用户能够通过简单的配置生成各种各样的图表&#xff0c;包括但不限于折线图、柱状图、散点图、饼图、雷…

02Linux文件,目录,过滤,管道常用命令

Linux基础概述 Linux基础目录 Linux没有盘符这个概念, 只有一个顶级根目录 /, 所有文件都在它下面 在Windows系统中路径之间的层级关系使用/来表示在Linux系统中路径之间的层级关系使用/来表示,出现在开头的/表示根目录, /home/a.txt表示根目录下的home文件夹内有a.txt文件 …

2024年6月8日_第十五周_周六_分享技术:麻将技术

四人下午打麻将大纲 一、背景设定 时间&#xff1a;一个悠闲的下午地点&#xff1a;某人家中的麻将室或客厅人物&#xff1a; A先生&#xff1a;一个经验丰富的麻将老手&#xff0c;喜欢沉稳地分析牌局B女士&#xff1a;麻将新手&#xff0c;但好学不倦&#xff0c;喜欢尝试新…

微服务开发与实战Day03

一、导入黑马商城项目 资料文档&#xff1a;Docs 1. 安装MySQL ①删除root目录下的mysql rm -rf mysql/ ②把课前资料里的mysql目录上传到root目录下 ③创建一个通用网络 docker network create hm-net ④使用下面的命令安装MySQL docker run -d \--name mysql \-p 330…

自然资源-国土空间规划术语集合

自然资源-国土空间规划术语集合 国土空间&#xff1a; 国家主权与主权权利管辖下的地域空间&#xff0c;是人类生产生活的载体和场所&#xff0c;包括陆地国土空间和海洋国土空间。 国土空间规划&#xff1a; 对一定区域国土空间开发保护在空间和时间上作出的安排&#xff…

C++ OpenCV 图像分类魔法:探索神奇的模型与代码

⭐️我叫忆_恒心&#xff0c;一名喜欢书写博客的研究生&#x1f468;‍&#x1f393;。 如果觉得本文能帮到您&#xff0c;麻烦点个赞&#x1f44d;呗&#xff01; 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧&#xff0c;喜欢的小伙伴给个三连支…

TensorFlow2.x基础与mnist手写数字识别示例

文章目录 Github官网文档Playground安装声明张量常量变量 张量计算张量数据类型转换张量数据维度转换ReLU 函数Softmax 函数卷积神经网络训练模型测试模型数据集保存目录显示每层网络的结果 TensorFlow 是一个开源的深度学习框架&#xff0c;由 Google Brain 团队开发和维护。它…

IP纯净度是什么,对用户有多么重要?

在网络应用和数据采集等领域&#xff0c;代理IP被广泛使用&#xff0c;而代理IP的纯净度则直接影响其性能和可用性。代理IP的纯净度主要涉及到代理IP在网络传输过程中的稳定性、匿名性和安全性。今天就带大家一起了解代理IP纯净度对用户的重要性。 第一&#xff0c;保护用户的隐…

adb多设备多屏幕调试

开发中有一种场景&#xff0c;就是将不同的应用界面投到不同的设备上&#xff0c;那么我们可以用以下方法 adb 多屏幕调试 准备工作 1、获取设备ID&#xff0c;SN码2、查看目前有几块屏幕&#xff0c;获取display-id 通过以下命令查看device-id&#xff08;SN&#xff09; a…

springboot+vue前后端项目接口校验通信数据完整性

方案&#xff1a;使用国密SM3算法实现数字签名 服务端 maven的pom文件引用 <!-- 国密算法支持 --><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15to18</artifactId><version>1.69</version><…

Android Ble低功耗蓝牙开发

一、新建项目 在Android Studio中新建一个项目&#xff0c;如下图所示&#xff1a; 选择No Activity&#xff0c;然后点击Next 点击Finish&#xff0c;完成项目创建。 1、配置build.gradle 在android{}闭包中添加viewBinding&#xff0c;用于获取控件 buildFeatures {viewB…

关于Redis中事务

事务的四个特性 Redis到底有没有原子性 Redis中的原子性不同于MySQL&#xff0c;相比于MySQL&#xff0c;Redis中的原子性几乎不值一提。 MySQL中的原子性&#xff0c;不仅仅是“要么全都执行&#xff0c;要么全都不执行”&#xff0c;它还保证了“一旦执行&#xff0c;结果…

Docker面试整理-如何管理Docker容器的安全?

管理 Docker 容器的安全是确保整个应用和基础设施安全的关键部分。以下是一些重要的实践和策略,可帮助你提高 Docker 容器的安全性: 1. 使用官方和受信任的镜像: ● 仅从可信赖的源下载镜像,如 Docker Hub 上的官方镜像或已验证的发布者。 ● 定期检查和更新你的镜像以确保…

Flutter基础 -- Flutter容器布局

目录 1. MaterialApp 1.1 组件定义 1.2 主要功能和属性 1.3 示例 2. 脚手架 Scaffold 2.1 定义 2.2 Scaffold 的属性 2.3 示例 PS: 对于 Scaffold 和 MaterialApp 3. 线性布局 Column Row 3.1 Row 3.2 Column 4. 盒模型 Box Model 4.1 定义 4.2 示例 5. 容器 C…

dbus-cleanup-sockets`:Linux 中的 D-Bus 套接字清理工具

dbus-cleanup-sockets&#xff1a;Linux 中的 D-Bus 套接字清理工具 在 Linux 系统中&#xff0c;D-Bus 是一种消息总线系统&#xff0c;用于应用程序之间的通信。然而&#xff0c;在某些情况下&#xff0c;D-Bus 套接字文件可能会因为各种原因而残留&#xff0c;导致系统资源…

PHP-CGI Windows平台远程代码执行漏洞复现(CVE-2024-4577)

0x01 产品简介 PHP-CGI 是一种用于在 Web 服务器上运行 PHP 脚本的接口,通过 CGI(公共网关接口)将 PHP 解释器与 Web 服务器连接。 0x02 漏洞概述 2024年6月,PHP官方发布新版本,修复了 PHP-CGI 中一个远程代码执行漏洞。鉴于该漏洞无前置条件,易于利用,且默认情况下可…

使用JDBC连接MySQL完整步骤(实测可用)

目录 步骤一&#xff1a;准备MySQL JDBC驱动程序 步骤二&#xff1a;导入必要的类 步骤三&#xff1a;建立数据库连接 步骤四&#xff1a;关闭连接 完整示例 附加 要使用Java连接MySQL数据库&#xff0c;您可以使用Java Database Connectivity&#xff08;JDBC&#xff0…

【JavaScript脚本宇宙】构建Web美学:CSS预处理器和UI库

构建优秀用户界面的必备利器&#xff1a;六款前端框架解析与比较 前言 前端开发中&#xff0c;选择合适的框架对于提高工作效率和实现设计目标至关重要。本文将介绍一些流行的前端框架&#xff0c;它们各具特色&#xff0c;能够帮助开发人员快速构建优秀的用户界面。 欢迎订阅…

21.注入的概念

上一个内容&#xff1a;20.创建辅助模板 在 19.使用纯c代码实现调用hp减伤害 它里面的代码需要我们自己手动调用WriteProcessMemory函数把辅助代码放到游戏进程内存中然后还需要计算大小计算辅助函数的内存地址&#xff0c;这是很麻烦的一件事&#xff0c;Windows系统提供了一…

数据结构及研究

**数据结构是计算机存储、组织数据的方式&#xff0c;它是相互之间存在一种或多种特定关系的数据元素的集合**Θic-1ΘΘic-2ΘΘic-3ΘΘic-4ΘΘic-5Θ。 数据结构这一概念在计算机科学领域扮演着至关重要的角色&#xff0c;它不仅决定了数据在计算机内部的存储方式&#xf…