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

本文主要是介绍代码随想录day53 110. 字符串接龙 105.有向图的完全可达性 106. 岛屿的周长,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

110. 字符串接龙

代码随想录

#include <iostream>
#include <vector>
#include <unordered_set>
#include <unordered_map>
#include <queue>using namespace std;int main() {int N;cin >> N;string beginStr, endStr, str;cin >> beginStr >> endStr;unordered_set<string> strSet;for (int i = 0; i < N; i++) {cin >> str;strSet.insert(str);}unordered_map<string, int> pathMap;pathMap[beginStr] = 1;queue<string> que;que.push(beginStr);while (!que.empty()) {string word = que.front();que.pop();int path = pathMap[word];for (int i = 0; i < word.size(); i++) {string newWord = word;for (int j = 0; j < 26; j++) {newWord[i] = 'a' + j ;if (newWord == endStr) {cout << path + 1;return 0;}if (strSet.count(newWord) != 0 && pathMap.find(newWord) == pathMap.end()) {pathMap[newWord] = path + 1;que.push(newWord);}}}}cout << 0;return 0;
}

105.有向图的完全可达性

代码随想录

#include <vector>
#include <iostream>
#include <list>
using namespace std;void dfs(vector<list<int>> &graph, vector<bool> &visted, int begin) {visted[begin] = true;list<int> destList = graph[begin];for (int ele : destList) {if (!visted[ele]) {dfs(graph, visted, ele);}}
}int main() {int N, K, s, t;cin >> N >> K;vector<list<int>> graph(N + 1, list<int>());for (int i = 0; i < K; i++) {cin >> s >> t;graph[s].push_back(t);}vector<bool> visted(N + 1, false);dfs(graph, visted, 1);for (int i = 1; i <= N; i++) {if (!visted[i]) {cout << -1;return 0;}}cout << 1;return 0;
}

106. 岛屿的周长

代码随想录

#include <vector>
#include <iostream>using namespace std;int dir[4][2] = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}};int dfs(vector<vector<int>> &graph, vector<vector<bool>> &visted, int row, int col) {visted[row][col] = true;int count = 0;for (int i = 0; i < 4; i++) {int nextRow = row + dir[i][0];int nextCol = col + dir[i][1];if (nextRow < 0 || nextRow >= graph.size() || nextCol < 0 || nextCol >= graph[0].size() || graph[nextRow][nextCol] == 0) {count++;continue;}if (!visted[nextRow][nextCol]) {count += dfs(graph, visted, nextRow, nextCol);}}return count;
}int main() {int N, M;cin >> N >> M;vector<vector<int>> graph(N, vector<int>(M));vector<vector<bool>> visted(N, vector<bool>(M, false));for (int i = 0; i < N; i++) {for (int j = 0; j < M; j++) {cin >> graph[i][j];}}for (int i = 0; i < N; i++) {for (int j = 0; j < M; j++) {if (graph[i][j] == 1) {cout << dfs(graph, visted, i, j);return 0;}}}return 0;
}
#include <iostream>
#include <vector>
using namespace std;
int main() {int n, m;cin >> n >> m;vector<vector<int>> grid(n, vector<int>(m, 0));for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> grid[i][j];}}int direction[4][2] = {0, 1, 1, 0, -1, 0, 0, -1};int result = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (grid[i][j] == 1) {for (int k = 0; k < 4; k++) {       // 上下左右四个方向int x = i + direction[k][0];int y = j + direction[k][1];    // 计算周边坐标x,yif (x < 0                       // x在边界上|| x >= grid.size()     // x在边界上|| y < 0                // y在边界上|| y >= grid[0].size()  // y在边界上|| grid[x][y] == 0) {   // x,y位置是水域result++;}}}}}cout << result << endl;}

这篇关于代码随想录day53 110. 字符串接龙 105.有向图的完全可达性 106. 岛屿的周长的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103895

相关文章

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

HDU 2159 二维完全背包

FATE 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还说了他最多只杀s只怪。请问他能

zoj 1721 判断2条线段(完全)相交

给出起点,终点,与一些障碍线段。 求起点到终点的最短路。 枚举2点的距离,然后最短路。 2点可达条件:没有线段与这2点所构成的线段(完全)相交。 const double eps = 1e-8 ;double add(double x , double y){if(fabs(x+y) < eps*(fabs(x) + fabs(y))) return 0 ;return x + y ;

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

D4代码AC集

贪心问题解决的步骤: (局部贪心能导致全局贪心)    1.确定贪心策略    2.验证贪心策略是否正确 排队接水 #include<bits/stdc++.h>using namespace std;int main(){int w,n,a[32000];cin>>w>>n;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1);int i=1

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

html css jquery选项卡 代码练习小项目

在学习 html 和 css jquery 结合使用的时候 做好是能尝试做一些简单的小功能,来提高自己的 逻辑能力,熟悉代码的编写语法 下面分享一段代码 使用html css jquery选项卡 代码练习 <div class="box"><dl class="tab"><dd class="active">手机</dd><dd>家电</dd><dd>服装</dd><dd>数码</dd><dd