当前位置: 首页 > 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;}
};

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

头像

相关文章:

  • 红黑树的应用场景 —— 进程调度 CFS 与内存管理
  • 视频编解码学习7之视频编码简介
  • 6. 进程控制
  • 初学者的AI智能体课程:构建AI智能体的十堂课
  • 在k8s中,如何实现服务的访问,k8s的ip是变化的,怎么保证能访问到我的服务
  • Perspective,数据可视化的超级引擎!
  • K8S常见问题汇总
  • PDF生成模块开发经验分享
  • [5-2] 对射式红外传感器计次旋转编码器计次 江协科技学习笔记(38个知识点)
  • XL32F001国产低成本单片机,24MHz主频,24KB Flash,3KB SRAM
  • 【探寻C++之旅】第十三章:红黑树
  • Python Cookbook-7.8 使用 Berkeley DB 数据库
  • TensorFlow 2.x入门实战:从零基础到图像分类项目
  • 物流无人机自动化装卸技术解析!
  • Python在自动驾驶实时数据处理中的应用:让AI驾驶更智能、更高效
  • Python奶茶系统
  • 能耗优化新引擎:EIOT平台助力企业降本增效
  • Redis实现分布式获取全局唯一自增ID的案例。
  • 二极管的动态特性
  • 如何设置内网映射端口到外网访问?哪些软件可以进行端口映射?
  • 广州下调个人住房公积金贷款利率
  • 上交现场配乐4K修复版《神女》:默片巅峰有了新的打开方式
  • 印对巴军事打击后,巴外交部召见印度驻巴临时代办
  • 外交部发言人就当前印巴局势答记者问
  • 百亿基金经理调仓路径曝光,张坤、陈皓、胡昕炜又有新动作
  • 指挥家高健:东方市民音乐会“高贵不贵”,我愿意常来