当前位置: 首页 > news >正文

【今日三题】ISBN号码(模拟) / kotori和迷宫(BFS最短路) / 矩阵最长递增路径(dfs)

头像
⭐️个人主页:@小羊
⭐️所属专栏:每日两三题
很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~

动图描述

目录

    • ISBN号码(模拟)
    • kotori和迷宫(BFS最短路)
    • 矩阵最长递增路径(dfs)


ISBN号码(模拟)

  • ISBN号码

在这里插入图片描述

#include <iostream>
#include <string>
using namespace std;string s;
int sum, cnt = 1, n;int main()
{cin >> s;n = s.size();for (int i = 0; i < n - 1; i++){if (s[i] != '-'){sum += (s[i] - '0') * cnt;cnt++;}}sum %= 11;if (sum == (s[n - 1] - '0') || (sum == 10 && s[n - 1] == 'X')){cout << "Right" << endl;}else {s[n - 1] = (sum == 10 ? 'X' : (sum + '0'));cout << s << endl;}return 0;
}

kotori和迷宫(BFS最短路)

  • kotori和迷宫

在这里插入图片描述

#include <iostream>
#include <queue>
using namespace std;int dx[4] = {1, -1, 0, 0}, dy[4] = {0, 0, 1, -1};
const int N = 31;
bool used[N][N];
char arr[N][N];
using pii = pair<int, int>;
queue<pii> q;
int n, m, cnt, dist, step;int main()
{cin >> n >> m;for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){cin >> arr[i][j];if (arr[i][j] == 'k'){q.push({i, j});used[i][j] = true;}}}while (q.size()){step++;int sz = q.size();while (sz--){auto [a, b] = q.front();q.pop();for (int i = 0; i < 4; i++){int x = a + dx[i], y = b + dy[i];if (x >= 0 && x < n && y >= 0 && y < m && !used[x][y] && arr[x][y] != '*'){if (arr[x][y] == 'e'){if (cnt == 0) dist = step;cnt++;}else if (arr[x][y] == '.'){q.push({x, y});}used[x][y] = true;}}}}if (cnt > 0) cout << cnt << " " << dist << endl;else cout << -1 << endl;return 0;
}

矩阵最长递增路径(dfs)

  • 矩阵最长递增路径

在这里插入图片描述

class Solution {int dx[4] = {1, -1, 0, 0}, dy[4] = {0, 0, 1, -1};bool used[1001][1001] = {};int n, m;
public:int solve(vector<vector<int> >& matrix) {n = matrix.size(), m = matrix[0].size();int len = 0;for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){len = max(len, dfs(matrix, i, j));}}return len;}int dfs(const vector<vector<int>> &matrix, int i, int j){int len = 1;for (int k = 0; k < 4; k++){int x = i + dx[k], y = j + dy[k];if (x >= 0 && x < n && y >= 0 && y < m && !used[x][y] && matrix[x][y] > matrix[i][j]){used[x][y] = true;len = max(len, dfs(matrix, x, y) + 1);used[x][y] = false;}}return len;}
};

本篇文章的分享就到这里了,如果您觉得在本文有所收获,还请留下您的三连支持哦~

头像
http://www.xdnf.cn/news/335179.html

相关文章:

  • vite 初始化react项目
  • UV使用官网
  • C++GO语言微服务和服务发现
  • mac连接lniux服务器教学笔记
  • c++中的引用
  • C# 方法(输出参数)
  • x64dbg技巧
  • 如何在Vue-Cli中使用Element-UI和Echarts和swiper插件(低版本)
  • 视频编解码学习7之视频编码简介
  • 红黑树详解初版
  • Java数据结构——Queue
  • 使用Deployment部署运行Nginx和Apache服务
  • Java复习笔记-基础
  • Spark缓存--cache方法
  • leetcode 3342. 到达最后一个房间的最少时间 II 中等
  • ​无线手持吸尘器无刷BLDC驱动方案功能介绍---【其利天下】
  • Crawl4AI:高效的开源 Python 网页爬取与数据提取库
  • php java go python面向对象的设计原则和常用设计模式
  • 构建高可维护、易测试的异步任务系统:基于 Celery + Redis + Eventlet 的模块化架构实践
  • AI日报 · 2025年5月08日|Stripe发布全球首个支付AI基础模型
  • 论坛系统开发(0-1) (上 前置知识介绍)
  • 解锁跨平台开发的新时代——Compose Multiplatform
  • Python3 上下文管理器:优雅管理资源的艺术
  • JVM运行时数据区域(Run-Time Data Areas)的解析
  • Linux系统管理与编程15:vscode与Linux连接进行shell开发
  • HTTP Error 500.31 - Failed to load ASP.NET Core runtime
  • GuPPy-v1.2.0安装与使用-生信工具52
  • Asp.Net Core IIS发布后PUT、DELETE请求错误405
  • Docker封装深度学习模型
  • 从知识图谱到精准决策:基于MCP的招投标货物比对溯源系统实践