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

Day 19

目录

  • 1.BC76 [NOIP2008]ISBN号码
    • 1.1解析
    • 1.2 代码
  • 2.kotori和迷宫
    • 2.1解析
    • 2.2 代码
  • 3.NC138 矩阵最长递增路径
    • 3.1 解析
    • 3.2 代码

1.BC76 [NOIP2008]ISBN号码

BC76 [NOIP2008]ISBN号码
模拟

1.1解析

在这里插入图片描述

1.2 代码

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

2.kotori和迷宫

kotori和迷宫
bfs

2.1解析

在这里插入图片描述

2.2 代码

#include <iostream>
using namespace std;
#include <vector>
#include <string>
#include <queue>int n,m;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
vector<vector<int>> vis;void bfs(vector<string>& grid,int i,int j)
{vis[i][j]=0;queue<pair<int,int>> q;q.push({i,j});while(q.size()){int size=q.size();while(size--){auto [a,b]=q.front();q.pop();for(int k=0;k<4;k++){int x=a+dx[k],y=b+dy[k];if(x>=0&&x<n&&y>=0&&y<m&&vis[x][y]==-1&&grid[x][y]!='*'){vis[x][y]=vis[a][b]+1;if(grid[x][y]!='e'){q.push({x,y});}}}}}
}
int main()
{cin>>n>>m;vector<string> grid(n);vis=vector<vector<int>>(n,vector<int>(m,-1));for(int i=0;i<n;i++)cin>>grid[i];for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(grid[i][j]=='k'){bfs(grid,i,j);}}}int count=0,ret=1e9;for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(grid[i][j]=='e'&&vis[i][j]!=-1){count++;ret=min(ret,vis[i][j]);}}}if(count)cout<<count<<' '<<ret<<endl;else cout<<-1<<endl;return 0;
}

3.NC138 矩阵最长递增路径

NC138 矩阵最长递增路径
递归、记忆化搜索

3.1 解析

在这里插入图片描述

3.2 代码

//递归
class Solution {int n,m;int dx[4]={0,0,1,-1};int dy[4]={1,-1,0,0};
public:int dfs(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&&matrix[x][y]>matrix[i][j]){len=max(len,1+dfs(matrix,x,y));}}return len;}int solve(vector<vector<int> >& matrix) {n=matrix.size(),m=matrix[0].size();int ret=1;for(int i=0;i<n;i++){for(int j=0;j<m;j++){ret=max(ret,dfs(matrix,i,j));}}return ret;}
};//添加备忘录
class Solution {int n,m;int dx[4]={0,0,1,-1};int dy[4]={1,-1,0,0};int memo[1010][1010];
public:int dfs(vector<vector<int>>& matrix,int i,int j){//先看备忘录if(memo[i][j]!=-1)return memo[i][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&&matrix[x][y]>matrix[i][j]){len=max(len,1+dfs(matrix,x,y));}}memo[i][j]=len;//存入备忘录return len;}int solve(vector<vector<int> >& matrix) {n=matrix.size(),m=matrix[0].size();memset(memo,-1,sizeof(memo));int ret=1;for(int i=0;i<n;i++){for(int j=0;j<m;j++){ret=max(ret,dfs(matrix,i,j));}}return ret;}
};
http://www.xdnf.cn/news/8891.html

相关文章:

  • 力扣HOT100之回溯:78. 子集
  • 【linux】systemct创建服务
  • 【C++】21. 红黑树的实现
  • 面试专栏04-SpringCloud
  • 相机内参 opencv
  • 基于Web组件实现随机抽奖
  • 云手机安卓12哪个好?掌派云手机安卓12系统上线,开启流畅体验新纪元
  • 指针数组和数组指针的区别
  • 华为OD机试真题—— 判断字符串子序列(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 【EcelVBA】系统学习 ActiveX 控件
  • 恒坤新材闯上市:利润受益于大额补贴,产能利用率低仍要募资扩产
  • OD 算法题 B卷【最长公共后缀】
  • C++修炼:哈希表的模拟实现
  • 【python实战】-- 选择解压汇总mode进行数据汇总20250525更新(篇幅2)
  • 塔能科技:以多元技术赋能全行业能耗节能转型
  • 力扣刷题(第三十七天)
  • Linux之概述和安装vm虚拟机
  • Oracle附加日志概述
  • Day 31 训练
  • 哪款云手机支持安卓12系统?掌派云手机-性价比之选
  • Threejs 透明模型渲染嵌套以及深度测试解决共存问题
  • 什么是ESLint?它有什么作用?
  • 10G/25G PCS only mode for CoaXPress Over Fiber
  • 9. Spring AI 各版本的详细功能与发布时间整理
  • 华为OD机试真题——出租车计费/靠谱的车 (2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • Spring Cloud Sleuth与Zipkin深度整合指南:微服务链路追踪实战
  • Python实战:轻松连接与高效操作Elasticsearch
  • HDFS存储原理与MapReduce计算模型
  • 嵌入式学习笔记——day27
  • 奈雪小程序任务脚本