PAT题解 --- 寻宝图

今天是PTA题库解法讲解的第十天,今天我们要讲解浪漫侧影,题目如下:

题解思路:

要解决这个问题,可以使用深度优先搜索(DFS)方法来遍历每一个陆地或宝藏格子,标记所有与之相连的格子,从而识别出一个岛屿。遇到未访问过的陆地或宝藏格子时,就开始一个新的DFS过程。如果在岛屿中发现有宝藏(值为2-9的格子),则此岛屿为有宝藏的岛屿。这种方法能高效地遍历地图,将格子分组成岛屿,并识别出含宝藏的岛屿。

C语言实现:

#include <stdio.h>
#define MAXN 105int n, m;
int grid[MAXN][MAXN];
int visited[MAXN][MAXN];void dfs(int x, int y, int* hasTreasure) {if(x < 0 || x >= n || y < 0 || y >= m || visited[x][y] || grid[x][y] == 0) return;visited[x][y] = 1;if(grid[x][y] >= 2 && grid[x][y] <= 9) *hasTreasure = 1;dfs(x+1, y, hasTreasure); // downdfs(x-1, y, hasTreasure); // updfs(x, y+1, hasTreasure); // rightdfs(x, y-1, hasTreasure); // left
}int main() {// Assume input has been read into `grid`// Initialize `visited` to 0int islands = 0, treasureIslands = 0;for(int i = 0; i < n; ++i) {for(int j = 0; j < m; ++j) {if(!visited[i][j] && grid[i][j] != 0) {int hasTreasure = 0;dfs(i, j, &hasTreasure);islands++;treasureIslands += hasTreasure;}}}printf("%d %d\n", islands, treasureIslands);return 0;
}

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

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

相关文章

MySQL表内容的增删查改

在前面几章的内容中我们学习了数据库的增删查改&#xff0c;表的增删查改&#xff0c;这一篇我们来学习一下对表中的内容做增删查改。 CRUD : Create(创建), Retrieve(读取)&#xff0c;Update(更新)&#xff0c;Delete&#xff08;删除&#xff09; 1.创建Create 我们先创建…

linux centos 安装jenkins,并构建spring boot项目

首先安装jenkins&#xff0c;使用war包安装&#xff0c;比较简单&#xff0c;注意看下载的版本需要的JDK版本&#xff0c;官网下载https://www.jenkins.io/download/ 把下载好的war包放到服务器上&#xff0c;然后运行&#xff0c;注意8080端口的放行 # 前台运行并指定端口 ja…

基于Matlab的眼底图像血管分割,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

腾讯云GPU云服务器_并行计算_弹性计算_AI_深度学习

腾讯云GPU服务器是提供GPU算力的弹性计算服务&#xff0c;腾讯云GPU服务器具有超强的并行计算能力&#xff0c;可用于深度学习训练、科学计算、图形图像处理、视频编解码等场景&#xff0c;腾讯云百科txybk.com整理腾讯云GPU服务器租用价格表、GPU实例优势、GPU解决方案、GPU软…

【机器学习300问】47、如何计算AUC?

一、AUC是什么&#xff1f; &#xff08;1&#xff09;文绉绉的定义 AUCArea Under the Curve中文直译叫“曲线下面积”&#xff0c;AUC名字里面的Curve曲线指的就是ROC曲线&#xff0c;关于ROC曲线的相关知识我已经在之前的文章中详细说过了&#xff0c;有需要的友友可以点击…

深度学习,CRNN+CTC和Attention OCR你更青睐哪一种?

深度学习在OCR领域的应用已经取得了瞩目的成果&#xff0c;而选择合适的算法对于提升OCR的识别准确率至关重要。在众多算法中&#xff0c;CRNN和Attention OCR犹如两颗璀璨的明珠&#xff0c;备受瞩目。 CRNN&#xff0c;这位结合了卷积神经网络&#xff08;CNN&#xff09;和…

【Godot4.2】基础知识 - Godot中的2D向量

概述 在Godot中&#xff0c;乃至一切游戏编程中&#xff0c;你应该都躲不开向量。这是每一个初学者都应该知道和掌握的内容&#xff0c;否则你将很难理解和实现某些其实原理非常简单的东西。 估计很多刚入坑Godot的小伙伴和我一样&#xff0c;不一定是计算机专业或编程相关专…

Keepalive与idle监测及性能优化

Keepalive 与 idle监测 Keepalive&#xff08;保活&#xff09;: Keepalive 是一种机制&#xff0c;通常用于TCP/IP网络。它的目的是确保连接双方都知道对方仍然存在并且连接是活动的。这是通过定期发送控制消息&#xff08;称为keepalive消息&#xff09;实现的。如果在预定时…

图床项目实战:从零搭建一个简易图床

项目背景与需求分析 随着互联网的发展&#xff0c;图片分享、存储和管理的需求日益增长。图床作为一种专门用于存储和分享图片的服务&#xff0c;受到了广大用户的欢迎。本项目旨在搭建一个简易的图床系统&#xff0c;满足用户上传、查看和删除图片的基本需求。 技术选型 本项…

10、chrome拓展程序的实现

一、拓展程序的实现 拓展程序项目的构成 和前端项目一样&#xff0c;拓展程序也是有Html、CSS、JS文件实现的&#xff0c;现在看来它就是一个静态的前端页面。但是不同的是&#xff0c;拓展程序中还需要额外的一个清单文件&#xff0c;就是manifest.json&#xff0c;清单文件可…

MySQL 经典练习 50 题 (记录)

前言&#xff1a; 记录一下sql学习&#xff0c;仅供参考基本都对了&#xff0c;不排除有些我做的太快做错了。里面sql不存在任何sql优化操作&#xff0c;只以完成最后输出结果为目的&#xff0c;包含我做题过程和思路最后一行才是结果。 1.过程: 1.1.插入数据 /* SQLyog Ul…

RobotFramework自动化测试框架的搭建

最近组长说要开始搞自动化&#xff0c;和同事交流发现他在用的是RF框架的自动化&#xff0c;所以就打算在本地安装下来试试&#xff0c;但是没想到就是最开始的搭建环境就让我搞了两三天&#xff0c;现在把搭建过程踩的坑记录一下&#xff0c;也算是个总结。 一、RobotFrame框…