随想录 Day 66 110. 字符串接龙 105. 有向图的完全可达性 106. 岛屿的周长

随想录 Day 66 110. 字符串接龙 105. 有向图的完全可达性 106. 岛屿的周长

110. 字符串接龙

110. 字符串接龙

时间限制:1.000S 空间限制:256MB
题目描述
字典 strList 中从字符串 beginStr 和 endStr 的转换序列是一个按下述规格形成的序列:

  1. 序列中第一个字符串是 beginStr。

  2. 序列中最后一个字符串是 endStr。

  3. 每次转换只能改变一个字符。

  4. 转换过程中的中间字符串必须是字典 strList 中的字符串,且strList里的每个字符串只用使用一次。

给你两个字符串 beginStr 和 endStr 和一个字典 strList,找到从 beginStr 到 endStr 的最短转换序列中的字符串数目。如果不存在这样的转换序列,返回 0。

输入描述
第一行包含一个整数 N,表示字典 strList 中的字符串数量。 第二行包含两个字符串,用空格隔开,分别代表 beginStr 和 endStr。 后续 N 行,每行一个字符串,代表 strList 中的字符串。
输出描述
输出一个整数,代表从 beginStr 转换到 endStr 需要的最短转换序列中的字符串数量。如果不存在这样的转换序列,则输出 0。
输入示例
6
abc def
efc
dbc
ebc
dec
dfc
yhn
输出示例
4

提交

和题解的区别在于,题解是每个位置换26个字母,我这里是直接判断一遍词典里面给的词。

注意string的size得转换成int形式

# include <iostream>
# include <vector>
# include <unordered_set>
# include <string>
# include <queue>
using namespace std;bool distance(string a, string b) {int count = 0;if (a.size() != b.size()) return false;//cout << a.size();for (int i = 0; i< int(a.size()); i++) {if (a[i] != b[i]) count++;if (count > 1) return false;}if (count == 1) return true;return false;
}
int main() {int cnt;cin>> cnt;string begin, end;cin>> begin >> end;vector<string> strList(cnt + 1);vector<bool> visited(cnt + 1, false);for (int i = 0; i < cnt; i++) {cin>> strList[i];}strList[cnt] = end;queue<string> que;que.push(begin);int length = 1;while(que.size() != 0) {int size = que.size();length ++;for (int i = 0; i < size; i++) {string temp = que.front();que.pop();for (int j = 0; j < cnt + 1; j++) {if (visited[j] ==false && distance(temp, strList[j])) {if (j == cnt){cout<< length;return 0;}visited[j] = true;que.push(strList[j]);}}}}cout<< 0;return 0 ;
}

105. 有向图的完全可达性

105. 有向图的完全可达性

时间限制:1.000S 空间限制:256MB
题目描述
给定一个有向图,包含 N 个节点,节点编号分别为 1,2,…,N。现从 1 号节点开始,如果可以从 1 号节点的边可以到达任何节点,则输出 1,否则输出 -1。
输入描述
第一行包含两个正整数,表示节点数量 N 和边的数量 K。 后续 K 行,每行两个正整数 s 和 t,表示从 s 节点有一条边单向连接到 t 节点。
输出描述
如果可以从 1 号节点的边可以到达任何节点,则输出 1,否则输出 -1。
输入示例
4 4
1 2
2 1
1 3
3 4
输出示例
1

直接提交

# include<iostream>
# include<vector>
# include<queue>
using namespace std;
int n, m;
int main() {cin>> n>> m;vector<vector<int> > map(n+1);for (int i = 0; i < m; i++) {int vertex, to;cin>> vertex>> to;map[vertex].push_back(to);}vector<bool> visited(n+1, false);visited[0] = true;queue<int> que;que.push(1);visited[1] = true;while(que.size() != 0) {int now = que.front();que.pop();for (int i : map[now]) {if (visited[i] == false) {visited[i] = true;que.push(i);}}}for (bool b : visited) {//cout <<b << " ";if (!b) {cout << -1;return 0;}}cout<< 1;
}

106. 岛屿的周长

106. 岛屿的周长
时间限制:1.000S 空间限制:256MB
题目描述
给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿是被水包围,并且通过水平方向或垂直方向上相邻的陆地连接而成的。

你可以假设矩阵外均被水包围。在矩阵中恰好拥有一个岛屿,假设组成岛屿的陆地边长都为 1,请计算岛屿的周长。岛屿内部没有水域。

输入描述
第一行包含两个整数 N, M,表示矩阵的行数和列数。之后 N 行,每行包含 M 个数字,数字为 1 或者 0,表示岛屿的单元格。
输出描述
输出一个整数,表示岛屿的周长。
输入示例
5 5
0 0 0 0 0
0 1 0 1 0
0 1 1 1 0
0 1 1 1 0
0 0 0 0 0
输出示例
14

直接提交

注意这在边缘的也是岛边

# include<iostream>
# include<vector>
using namespace std;
int dirs[4][2] = {{0, -1},{0, 1},{1, 0},{-1, 0}
};
int n, m;
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];}}int res = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (map[i][j] == 1) {for (int k = 0; k < 4; k++) {int x = i + dirs[k][0];int y = j + dirs[k][1];if (x >=0 && x < n && y >=0 && y < m) {if (map[x][y] == 0) res++; } else {res++;}}}}}cout << res;
}

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

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

相关文章

浙大宁波理工学院2024年成人高等继续教育招生简章

浙大宁波理工学院&#xff0c;这所承载着深厚学术底蕴和卓越教育理念的学府&#xff0c;正热烈开启2024年成人高等继续教育的招生之门。这里&#xff0c;是知识的殿堂&#xff0c;是智慧的摇篮&#xff0c;更是您实现个人梦想、追求更高境界的起点。 ​浙大宁波理工学院始终坚…

实战指南:部署Elasticsearch 8.4.1与Kibana 8.4.1并集成IK分词器

首先拉取elasticsearch和kibana镜像 docker pull elasticsearch:8.4.1 docker pull kibana:8.4.1如果遇到镜像拉去不下来&#xff0c;遇到如下问题&#xff1a; [ERROR] error pulling image configuration: Get " https://production.cloudflare.docker.com/registry-v…

【吊打面试官系列-Mysql面试题】视图有哪些优点?

大家好&#xff0c;我是锋哥。今天分享关于 【视图有哪些优点&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 视图有哪些优点&#xff1f; 答&#xff1a; (1) 视图能够简化用户的操作&#xff1b; (2) 视图使用户能以多种角度看待同一数据&#xff1b; (3) 视…

编程参考 - GCC的条件编译

4 Conditionals 条件是一种指令&#xff0c;它指示预处理器选择是否在传递给编译器的最终标记流中包含一段代码。预处理器条件可以测试算术表达式&#xff0c;也可以测试名称是否定义为宏&#xff0c;或者使用特殊的defined操作符同时测试这两种表达式。 A conditional is a di…

【C#】使用数字和时间方法ToString()格式化输出字符串显示

在C#编程项目开发中&#xff0c;几乎所有对象都有格式化字符串方法&#xff0c;其中常见的是数字和时间的格式化输出多少不一样&#xff0c;按实际需要而定吧&#xff0c;现记录如下&#xff0c;以后会用得上。 文章目录 数字格式化时间格式化 数字格式化 例如&#xff0c;保留…

【docker1】指令,docker-compose,Dockerfile

文章目录 1.pull/image&#xff0c;run/ps&#xff08;进程&#xff09;&#xff0c;exec/commit2.save/load&#xff1a;docker save 镜像id&#xff0c;不是容器id3.docker-compose&#xff1a;多容器&#xff1a;宿主机&#xff08;eth0网卡&#xff09;安装docker会生成一…

4、SpringMVC 实战小项目【加法计算器、用户登录、留言板、图书管理系统】

SpringMVC 实战小项目 3.1 加法计算器3.1.1 准备⼯作前端 3.1.2 约定前后端交互接⼝需求分析接⼝定义请求参数:响应数据: 3.1.3 服务器代码 3.2 ⽤⼾登录3.2.1 准备⼯作3.2.2 约定前后端交互接⼝3.2.3 实现服务器端代码 3.3 留⾔板实现服务器端代码 3.4 图书管理系统准备后端 3…

【电路笔记】-共发射极放大器

共发射极放大器 文章目录 共发射极放大器1、概述2、完整的CEA配置3、直流等效电路4、交流等效电路5、输入阻抗6、输出阻抗7、电压增益8、微分电容的重要性9、信号源的衰减10、电流增益11、相位反转12、总结1、概述 在本文中,我们将介绍基于双极晶体管的放大器的最后一种拓扑:…

2024 WaniCTF repwn 部分wp

lambda 文本编辑器打开附件 稍微格式化一下 结合gpt理解题目意思。 脚本 home 附件拖入ida 简单的检查环境和反调试&#xff0c;进构造flag的函数 简单的ollvm&#xff0c;用d810嗦一下 下断点调试&#xff0c;通过修改eip跳过反调试。查看dest内容&#xff0c;需要稍微向下翻一…

GitHub每周最火火火项目(6.17-6.23)

项目名称&#xff1a;1Panel-dev / MaxKB 项目介绍&#xff1a;MaxKB 是一个基于 LLM 大语言模型的知识库问答系统。它具有开箱即用的特点&#xff0c;支持快速嵌入到第三方业务系统中&#xff0c;由 1Panel 官方出品。该系统可以帮助用户快速构建知识库&#xff0c;并通过自然…

QT中利用动画弄一个侧边栏窗口,以及贴条效果

1、效果 2、关键代码 void Widget::on_sliderBtn_clicked() {m_sliderWidget->show();QPropertyAnimation* animation = new QPropertyAnimation(m

第14章. GPIO简介

目录 0. 《STM32单片机自学教程》专栏 14.1 GPIO基本结构 14.1.1 保护二极管 14.1.2 上拉、下拉电阻 14.1.3 施密特触发器 14.1.4 P-MOS 管和 N-MOS 管 14.1.5 输出数据寄存器 14.1.6 输入数据寄存器 14.2 GPIO工作模式 14.2.1 输入模式 14.2.1.1 输入浮空模式 1…

基础名词概念

了解以下基础名词概念/定义&#xff1a; IP地址、子网掩码、网关、DNS、DHCP、MAC地址、网络拓扑、路由器、交换机、VPN、端口、TCP、UDP、HTTP、HTTPS、OSI模型、ARP、NAT、VLAN、FTP、SMTP、IMAP、SSL、ICMP、链路聚合、TRUNK、直连路由、静态路由、动态路由、IPV6 端口&am…

YOLOv10独家改进:BiFormer:从局部空间特征到高效的全局空间特征

目录 提出背景 子解法1: 稀疏注意力引入: 子解法2: 区域级路由: 子解法3: 令牌级注意力应用: 2.YOLOv10加入BRA 2.1新建models/attention/BiLevelRoutingAttention.py 2.2修改task.py 2.3 yolov10n-BRA.yaml 2.4 yolov10n-PSBRA.yaml 提出背景 论文:https://arxiv.org…

ABB机器人教程:工具载荷与有效载荷数据自动标定操作方法

目录 概述 工具载荷自动标定前的准备工作 进入载荷识别服务例行程序 工具载荷识别与标定操作 有效载荷识别与标定操作要点 4轴码垛类型机器人载荷数据标定说明 概述 在使用ABB机器人前需要正确标定一些关键数据&#xff0c;其中就包含载荷数据。理论上讲&#xff0c;安装…

【协议-指南】

协议-指南 ■ CAN-通讯协议 ■ CAN-通讯协议 添加链接描述

issues.sonatype.org网站废弃,Maven仓库账号被废弃问题解决

问题起因&#xff1a; 今天自己的项目发布了一个新版本&#xff0c;打算通过GitHub流水线直接推送至Maven中央仓库&#xff0c;结果发现报错 401&#xff0c;说我的账号密码认证失败。我充满了疑惑我寻思难度我的号被盗掉了吗。于是我打开Nexus Repository Manager尝试登录账号…

代码重构:解读重构概念及重构实战

一.重构是什么(what) 重构(refactoring):在不改变代码外在行为的前提下&#xff0c;对代码作出修改&#xff0c;以改进程序的内部结构。 1.本质上说&#xff0c;重构就是在代码写好之后改进他的设计 传统开发过程中是先设计&#xff0c;再开发&#xff0c;更像是瀑布开发模式…

【b站-湖科大教书匠】2 物理层-计算机网络微课堂

课程地址&#xff1a;【计算机网络微课堂&#xff08;有字幕无背景音乐版&#xff09;】 https://www.bilibili.com/video/BV1c4411d7jb/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 2 物理层 2.1 物理层的基本概念 2.2 物理层下面的传输媒…

Android Studio 安卓手机上实现火柴人动画(Java源代码—Python)

android:layout_marginLeft“88dp” android:layout_marginTop“244dp” android:text“Python” android:textSize“25sp” app:layout_constraintStart_toStartOf“parent” app:layout_constraintTop_toTopOf“parent” /> </androidx.constraintlayout.widget.…