算法训练营day67
#include <iostream>
#include <vector>
#include <string>
#include <unordered_set>
#include <unordered_map>
#include <queue>using namespace std;int main() {string beginStr, endStr;int n;cin >> n;cin >> beginStr >> endStr;unordered_set<string> set;for(int i = 0;i < n;i++) {string str;cin >> str;set.insert(str);}unordered_map<string, int> visitedmp;visitedmp.insert(pair<string, int>(beginStr, 1));queue<string> qu;qu.push(beginStr);while(!qu.empty()) {string word = qu.front();qu.pop();int path = visitedmp[word];for(int i = 0;i < word.size();i++) {string newword = word;for(int j = 0;j < 26;j++) {newword[i] = j + 'a';if(newword == endStr) {cout << path + 1 << endl;return 0;}if(visitedmp.find(newword) == visitedmp.end() && set.find(newword) != set.end()) {visitedmp.insert(pair<string, int>(newword, path + 1));qu.push(newword);}}}}cout << 0 << endl;return 0;
}
题目2:105. 有向图的完全可达性 (kamacoder.com)
#include<bits/stdc++.h>using namespace std;int n, m;void dfs(vector<vector<int>>& map, int key, vector<bool>& visited) {if(visited[key]) {return;}visited[key] = true;for(int i = 1;i <= n;i++) {if(map[key][i] == 1) {dfs(map, i, visited);}}
}int main() {cin >> n >> m;vector<vector<int>> map(n + 1, vector<int>(n + 1, 0));while(m--) {int i,j;cin >> i >> j;map[i][j] = 1;}vector<bool> visited(n + 1, false);dfs(map, 1, visited);for(int i = 1;i <= n;i++) {if(!visited[i]) {cout << -1 << endl;return 0;}}cout << 1 << endl;return 0;
}
题目3:106. 岛屿的周长 (kamacoder.com)
// 其实可以不用dfs因为题目说了中间岛屿是联通的
#include<iostream>
#include<vector>using namespace std;
int dir[4][2] = {0, -1, -1, 0, 0, 1, 1, 0};
int n, m;
vector<pair<int, int>> result;
int count = 0;void dfs(vector<vector<int>>& map, vector<vector<bool>>& visited, int x, int y) {if(map[x][y] == 0 || visited[x][y]) {return;}result.push_back(pair<int, int>(x, y));visited[x][y] = true;for(int i = 0;i < 4;i++) {int nextx = x + dir[i][0];int nexty = y + dir[i][1];if(nextx < 0 || nextx >= n || nexty < 0 || nexty >= m) continue;dfs(map, visited, nextx, nexty);}
}int main() {cin >> n >> m;vector<vector<int>> map(n, vector<int>(m));for(int i = 0;i < n;i++) {for(int j = 0;j < m;j++) {cin >> map[i][j];}}vector<vector<bool>> visited(n, vector<bool>(m, false));for(int i = 0;i < n;i++) {for(int j= 0;j < m;j++) {if(map[i][j] != 0 && !visited[i][j]) {dfs(map, visited, i, j);}}}for(int i = 0;i < result.size();i++) {int x = result[i].first;int y = result[i].second;for(int j = 0;j < 4;j++) {int nextx = x + dir[j][0];int nexty = y + dir[j][1];if(nextx < 0 || nextx >= n || nexty < 0 || nexty >= m) {if(nextx == -1 || nextx == n || nexty == -1 || nexty == m) count++;continue;}if(map[nextx][nexty] == 0) count++;}}cout << count << endl;return 0;
}
相关文章:
算法训练营day67
题目1: #include <iostream> #include <vector> #include <string> #include <unordered_set> #include <unordered_map> #include <queue>using namespace std;int main() {string beginStr, endStr;int n;cin >> n;ci…...
人工智能--图像语义分割
个人主页:欢迎来到 Papicatch的博客 课设专栏 :学生成绩管理系统 专业知识专栏:专业知识 文章目录 🍉引言 🍉介绍 🍈工作原理 🍍数据准备 🍍特征提取 🍍像素分…...
fl studio20和21用哪一个好?FL-Chan from FL Studio欣赏
最近接到很多小伙伴的私信,都在问我平时会使用哪些音乐软件,能不能给一些参考。其实每个人的使用习惯不一样,需求也不一样。以DAW为例,有些人就是喜欢FL Studio,有些人吹爆Studio One,还有些人习惯使用Cuba…...
OpenCV直方图计算函数calcHist的使用
操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:Visual Studio Code编程语言:C11 功能描述 图像的直方图是一种统计表示方法,用于展示图像中不同像素强度(通常是灰度值或色彩强度)出现的频率分布。具体来说…...
09 docker 安装tomcat 详解
目录 一、安装tomcat 1. tomcat镜像的获取 2. docker创建容器实列 3. 访问测试 404错误 4. 解决方案 5. 使用免修改版容器镜像 5.1. 运行实列的创建 5.2. 出现问题及解决: 6. 验证 OK 一、安装tomcat 1. tomcat镜像的获取 docker search tomcat #docker …...
44.实现管理HOOK点的链表对象
上一个内容:43.实现HOOK接管寄存器数据 以 43.实现HOOK接管寄存器数据 它的代码为基础进行修改 首先创建一个类 这里创建的名为HOOKPOINT.h HOOKPOINT.cpp文件里面的内容 #include "pch.h" #include "HOOKPOINT.h"HOOKPOINT::HOOKPOINT() {…...
Unity小知识
1.当我们把摄像机的内容渲染到RenderTexture上而不是屏幕上时,那么相机的Aspect默认会设置成和RenderTexture的分辨率一样.不过最终如果把RenderTexture作为贴图贴到模型上去的时候还是会被UV拉伸和缩小的。 2.要想自定义UnityPackage的内容,只要找到UnityProject/L…...
【Jupyter Notebook与Git完美融合】在Notebook中驾驭版本控制的艺术
标题:【Jupyter Notebook与Git完美融合】在Notebook中驾驭版本控制的艺术 Jupyter Notebook是一个流行的开源Web应用程序,允许用户创建和共享包含实时代码、方程、可视化和解释性文本的文档。而Git是一个广泛使用的分布式版本控制系统,用于跟…...
Python开发者必看:内存优化的实战技巧
更多Python学习内容:ipengtao.com Python是一种高级编程语言,以其易读性和强大的功能而广受欢迎。然而,由于其动态类型和自动内存管理,Python在处理大量数据或高性能计算时,内存使用效率可能不如一些低级语言。本文将介…...
Golang | Leetcode Golang题解之第214题最短回文串
题目: 题解: func shortestPalindrome(s string) string {n : len(s)fail : make([]int, n)for i : 0; i < n; i {fail[i] -1}for i : 1; i < n; i {j : fail[i - 1]for j ! -1 && s[j 1] ! s[i] {j fail[j]}if s[j 1] s[i] {fail[i…...
【ajax实战08】分页功能
本文章目标:点击上/下一页按钮,实现对应页面的变化 实现基本步骤: 一:保存并设置文章总条数 设置一个全局变量,将服务器返回的数据返回给全局变量 二:点击下一页,做临界值判断,并…...
基于Hadoop平台的电信客服数据的处理与分析②项目分析与设计---需求分析-项目场景引入
任务描述 需求分析是软件生命周期中一个非常重要的过程,它决定着整个软件项目的质量,也是整个软件开发的成败所在。本环节任务是完成软件需求规格说明书。 知识点 :软件需求规格说明书的编写 重 点 :软件需求规格说明书内容的…...
debug-mmlab
mmyolo bug1: MMYOLO for yolov5 instance segmentation on balloon dataset getting this error "ValueError: Key img_path is not in available keys. solution: pip install albumentations1.3.1 reference...
年轻人为什么那么爱喝奶茶?
作者 | 艾泊宇 为什么年轻人那么爱喝奶茶?答案很简单:对他们来说,奶茶之于年轻人,正如白酒之于中年人。 奶茶不仅仅是一种饮料,它已经演化成一种文化现象,代表着温暖和爱的象征,甚至在某种程度上…...
手写数组去重
方法1-判断相邻元素 function _deleteRepeat(arr){if(!Array.isArray(arr)){throw new Error(参数必须是数组)}let res[];// 使用slice创建arr的副本,并排序let sortArrarr.slice().sort((a,b)>a-b);for(let i0;i<sortArr.length;i){if(isortArr.length-1||s…...
Firewalld 防火墙
1. 概述 在 RHEL7 系统中,firewalld 防火墙取代了传统的 iptables 防火墙。iptables 的防火墙策略是通过内核层面的 netfilter 网络过滤器来处理的,而 firewalld 则是通过内核层面的 nftables 包过滤框架来处理。firewalld 提供了更为丰富的功能和动态更…...
Hive查询优化 - 面试工作不走弯路
引言:Hive作为一种基于Hadoop的数据仓库工具,广泛应用于大数据分析。然而,由于其依赖于MapReduce框架,查询的性能可能会受到影响。为了确保Hive查询能够高效运行,掌握查询优化技巧至关重要。在日常工作中,高…...
【VUE3】uniapp + vite中 uni.scss 使用 /deep/ 不生效(踩坑记录三)
vite 中使用 /deep/ 进行样式穿透报错 原因:vite 中不支持,换成 ::v-deep 或:deep即可...
容器部署rabbitmq集群迁移
1、场景: 因业务需要,要求把rabbitmq-A集群上的数据迁移到rabbitmq-B集群上,rabbitmq的数据包括元数据(RabbitMQ用户、vhost、队列、交换和绑定)和消息数据,而消息数据存储在单独的消息存储库中。 2、迁移要…...
DP:背包问题----0/1背包问题
文章目录 💗背包问题💛背包问题的变体🧡0/1 背包问题的数学定义💚解决背包问题的方法💙例子 💗解决背包问题的一般步骤?💗例题💗总结 ❤️❤️❤️❤️❤️博客主页&…...
数据库死锁的排查:从现象到根因
在软件测试工作中,数据库的稳定性和数据一致性是评估系统质量的关键维度。死锁问题,作为数据库并发控制中的“顽疾”,其随机性、隐蔽性和破坏性常常让测试人员感到棘手。它不仅是性能测试中的“拦路虎”,更可能在线上引发严重故障…...
Modbus调试工具《二》 Master仿真器实战技巧解析
1. ModbusMaster仿真器核心功能解析 第一次打开ModbusMaster仿真器时,很多新手会被界面上的各种按钮和选项搞得晕头转向。其实这个工具的设计逻辑非常清晰,主要分为四大功能模块:连接配置、数据采集、寄存器操作和辅助工具。我刚开始用的时候…...
OpenClaw实操指南09|云端部署实战:腾讯云+OpenClaw,打造7×24小时不断线AI助手
很多人第一次用OpenClaw,是在自己电脑上跑的。 用着挺爽——但只要关机,AI助手就断了。出门在路上,飞书消息发出去,没有回应。 本地部署的致命缺陷:你不在,它也不在。 这篇教程解决这个问题。用腾讯云轻…...
WPS JS宏利用Fetch API实现网页数据抓取与Excel自动化处理
1. 为什么需要网页数据抓取与Excel自动化 在日常办公中,我们经常需要从各种网站获取数据并整理到Excel表格中。比如市场人员需要抓取竞品价格、财务人员需要获取汇率数据、运营人员需要统计社交媒体互动情况。传统做法是手动复制粘贴,不仅效率低下&#…...
保姆级教程:用PCL的SAC_RANSAC算法搞定点云平面分割(附完整C++代码)
从零掌握PCL点云平面分割:RANSAC算法实战与避坑指南 刚接触三维点云处理时,面对杂乱无章的数据点,如何快速准确地提取出平面结构?本文将手把手带你用PCL库中的RANSAC算法实现点云平面分割,从环境搭建到参数调优&#x…...
实测对比:图解法和微变等效电路法分析放大电路,到底哪个更准?
实测对比:图解法和微变等效电路法分析放大电路,到底哪个更准? 在模拟电路设计中,共射放大电路的分析是每个电子工程师必须掌握的核心技能。面对同样的电路,工程师们常陷入方法论的选择困境:是采用直观形象的…...
网站seo排名工具有哪些
网站SEO排名工具有哪些?详细解析与实用建议 在互联网时代,网站的SEO(搜索引擎优化)已经成为提升网站流量和品牌知名度的关键手段。为了帮助网站管理者和数字营销人员更好地进行SEO优化,市面上涌现了各种各样的SEO排名…...
PTP协议避坑指南:1588v2时间同步测试中常见的5个错误及解决方法
PTP协议避坑指南:1588v2时间同步测试中常见的5个错误及解决方法 在工业自动化、电信网络和电力系统等对时间同步精度要求极高的领域,1588v2协议(Precision Time Protocol)已经成为实现微秒级甚至纳秒级时间同步的事实标准。然而&a…...
保姆级教程:在Ubuntu 20.04上用Gazebo 11从户型图到仿真世界(附避坑指南)
从户型图到高保真Gazebo仿真环境:零基础室内建模实战指南 刚拿到户型图时,你可能觉得在Gazebo里重建整个房屋是项艰巨任务——毕竟不是每个机器人开发者都精通3D建模。但事实上,用Gazebo 11的建筑编辑器,配合一张清晰的户型图照片…...
AUTOSAR Ethernet Stack深度解析,手把手实现SOME/IP序列化、DDS桥接与时间同步校准
第一章:AUTOSAR以太网协议栈架构概览AUTOSAR以太网协议栈是面向汽车电子域控制器与中央计算平台的关键通信基础设施,其设计严格遵循AUTOSAR Classic Platform规范(R21-11及后续版本),在保持与传统CAN/LIN协议栈统一配置…...
