C++笔试强训day34

目录

1.ISBN号码

2.kotori和迷宫

3.矩阵最长递增路径


1.ISBN号码

链接icon-default.png?t=N7T8https://www.nowcoder.com/practice/95712f695f27434b9703394c98b78ee5?tpId=290&tqId=39864&ru=/exam/oj

提取题意,模拟一下即可。

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

2.kotori和迷宫

链接icon-default.png?t=N7T8https://ac.nowcoder.com/acm/problem/50041

BFS / DFS(宽度 / 深度 优先遍历即可)

DFS:(我写的DFS目前还是没找到为什么有测试用例过不去)

// DFS(有测试用例过不了)
#include <iostream>
using namespace std;
const int N = 35;int n, m;
int cnt = 0;
int sum = 0x3f3f3f3f;
char arr[N][N];
bool vis[N][N] = { false };
int dx[4] = { 0, 0, 1, -1 };
int dy[4] = { 1, -1, 0, 0 };void DFS(int d, int x, int y)
{if (arr[x][y] == 'e'){cnt++;sum = min(sum, d);return;}vis[x][y] = true;for (int i = 0; i < 4; ++i){int a = x + dx[i];int b = y + dy[i];if (a >= 1 && a <= n && b >= 1 && b <= m && !vis[a][b] && arr[a][b] != '*'){DFS(d + 1, a, b);}}vis[x][y] = false;
}int main()
{int x, y;cin >> n >> m;for (int i = 1; i <= n; ++i){for (int j = 1; j <= m; ++j){cin >> arr[i][j];if (arr[i][j] == 'k'){x = i;y = j;}}}DFS(0, x, y);if (cnt == 0)cout << -1;elsecout << cnt << ' ' << sum << endl;return 0;
}

 BFS:(因为可以保证第一次找到的一定是最近的)

// BFS
#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
const int N = 35;
int x1, y1; // 标记起点位置
int n, m;
char arr[N][N];
int dist[N][N];
queue<pair<int, int>> q;
int dx[4] = { 0, 0, 1, -1 };
int dy[4] = { 1, -1, 0, 0 };
void bfs()
{memset(dist, -1, sizeof dist);dist[x1][y1] = 0;q.push({ x1, y1 });while (q.size()){auto [x2, y2] = q.front();q.pop();for (int i = 0; i < 4; i++){int a = x2 + dx[i], b = y2 + dy[i];if (a >= 1 && a <= n && b >= 1 && b <= m && dist[a][b] == -1 &&arr[a][b] != '*'){dist[a][b] = dist[x2][y2] + 1;if (arr[a][b] != 'e'){q.push({ a, b });}}}}
}
int main()
{cin >> n >> m;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cin >> arr[i][j];if (arr[i][j] == 'k'){x1 = i, y1 = j;}}}bfs();int count = 0, ret = 1e9;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){if (arr[i][j] == 'e' && dist[i][j] != -1){count++;ret = min(ret, dist[i][j]);}}}if (count == 0) cout << -1 << endl;else cout << count << " " << ret << endl;return 0;
}

3.矩阵最长递增路径

链接icon-default.png?t=N7T8https://www.nowcoder.com/practice/7a71a88cdf294ce6bdf54c899be967a2?tpId=196&tqId=37184&ru=/exam/oj

深度优先遍历即可(DFS):

#include <cstdlib>
#include <vector>
class Solution {
public:const static int N = 1010;bool vis[N][N] = { false };int dx[4] = { 0, 0, 1, -1 };int dy[4] = { 1, -1, 0, 0 };int n, m, ret = 0;vector<vector<int>> arr;bool Check(int x, int y){for (int i = 0; i < 4; ++i){int a = x + dx[i];int b = y + dy[i];if (a >= 0 && a < n && b >= 0 && b < m && arr[x][y] < arr[a][b])return true;}return false;}void DFS(int x, int y, int d){if (!Check(x, y)){ret = max(ret, d);return;}vis[x][y] = true;for (int i = 0; i < 4; ++i){int a = x + dx[i];int b = y + dy[i];if (a >= 0 && a < n && b >= 0 && b < m && !vis[a][b] && arr[x][y] < arr[a][b]){DFS(a, b, d + 1);}}vis[x][y] = false;}int solve(vector<vector<int>>& matrix) {arr = matrix;n = matrix.size();m = matrix[0].size();for (int i = 0; i < n; ++i)for (int j = 0; j < m; ++j)DFS(i, j, 0);return ret + 1;}
};

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

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

相关文章

Java(其十二)--集合·初级

ArrayList集合 集合有很多种&#xff0c;ArrayList 是最常用的一种&#xff0c;集合的作用相当于C中的STL 最显著的特点就是&#xff1a;自动扩容。 一般定义式 ArrayList list new ArrayList(); //该 list 是可以储存各种类型的数据的&#xff0c;要想约束储存的数据&#x…

买车是小米su7还是model3?这个AI在我这里“干掉了”百万车评人

作者 | 曾响铃 文 | 响铃说 43天交付1万辆新车&#xff01;雷军的微博一发&#xff0c;又把小米汽车推上了热搜。 自小米su7问世以来&#xff0c;天天刷屏。说不心动&#xff0c;那是假的&#xff0c;身边好几个朋友都按捺不住要下订一台了。 但真要买&#xff0c;还是忍不住…

[回溯法]子集和数问题

没有任何优化&#xff0c;纯深搜做法&#xff1a; #include<iostream> #include<vector> using namespace std;const int N 100010; int nums[N],selected[N]; int n,M,sum; bool ansfalse;void Out() {for (int i 0; i < n - 1; i)printf("%d", …

强大的医院绩效考核管理系统源码,支持行业内所有绩效方案,且每步核算都可自主进行方案的新建、调整。

医院绩效考核管理系统是采用B/S架构模式设计、使用JAVA语言开发、后台使用MySql数据库进行管理的一整套计算机应用软件源码。 系统和his系统进行对接&#xff0c;按照设定周期&#xff0c;从his系统获取医院科室和医生、护士、其他人员工作量&#xff0c;对没有录入信息化系统…

YOLOv10:全面的效率-准确性驱动模型设计

YOLOv10&#xff1a;全面的效率-准确性驱动模型设计 提出背景精细拆分解法双重标签分配一致的匹配度量以效率为导向的模型设计 YOLO v10 总结1. 双重标签分配策略2. 一致匹配度量策略 论文&#xff1a;https://arxiv.org/pdf/2405.14458 代码&#xff1a;https://github.com/T…

今日选题。

诱导读者点开文章的9引真经&#xff08;一&#xff09; 标题重要么&#xff1f;新媒体、博客文通常在手机上阅读。首先所有的内容不同于纸媒&#xff0c;手机只展现标题&#xff0c;而内容都是折叠。其次读者能像看内容一样看4、5条或者7、8条标题&#xff08;区别于不同的主流…

微信小程序实现计算当前位置到目的地的距离

实现方式&#xff1a;使用腾讯位置服务 微信小程序JavaScript SDK | 腾讯位置服务 1.进腾讯位置服务申请key 2.下载sdk 微信小程序JavaScript SDK | 腾讯位置服务 3.微信公众平台添加授权域名 4.代码实现计算 const qqmap require("../../utils/qqmap-wx-jssdk.min.js…

一键部署Ollama和粘土模型?快来看看吧!

厚德云新上两款AI软件&#xff01;无需部署一键生成&#xff01; 前言 上新Ollama与粘土模型 就在5月23日&#xff0c;厚德云官方上新了Ollama开源大语言模型与粘土画风模型。它们都可以在平台上实施一键部署&#xff0c;那么这两款AI应用究竟有什么样的魅力呢&#xff1f;我们…

2024年4k激光投影仪购买指南:618推荐家用4K激光投影当贝X5 Pro

2024年的618已经悄然开始热度也在持续攀升&#xff0c;每年的大促节点是投影仪优惠力度最大的时候&#xff0c;很多消费者都会选择在这个时候去购买心仪的投影仪&#xff0c;想要投影放在客厅使用替代电视机的&#xff0c;一般都会去选择4K激光投影&#xff0c;如何挑选一款极具…

推荐3款好用的AI智能写作工具

AI智能写作如今已经很成熟了&#xff0c;不仅有很多AI综合大模型可以实现AI写作&#xff0c;还有很多专门针对AI写作场景专门研发的垂直领域工具。 如果你在工作学习中也想提高写作效率&#xff0c;不妨试试下面3个国内可直接登录使用的AI写作工具&#xff0c;其中不乏有简单易…

CentOS7 部署单机版 ElasticSearch + Logstash + Kibana

一、部署ElasticSearh 参考下面文章&#xff1a; CentOS7 部署单机版 ElasticSearch Logstash-CSDN博客文章浏览阅读83次&#xff0c;点赞2次&#xff0c;收藏2次。通过logstash收集信息&#xff0c;发送给elasticsearch处理。https://blog.csdn.net/weixin_44295677/articl…

详解PHP弱类型安全问题

弱类型的语言对变量的数据类型没有限制&#xff0c;你可以在任何地时候将变量赋值给任意的其他类型的变量&#xff0c;同时变量也可以转换成任意地其他类型的数据。这时候在类型转化、不同类型比较、不合理地传参&#xff0c;会造成意外执行结果和绕过防御。 一. 类型转换 …

ctfshow web入门 web306--web310源码审计

web306 这和之前的完全不一样了 <?php #error_reporting(0); session_start(); require service.php;$username$_POST[userid]; $userpwd$_POST[userpwd]; $servicenew service();$user$service->login($username,$userpwd); if($user){setcookie(user,base64_encode(…

常见电路的分类

举例&#xff1a;一个单片机控制电机驱动电路&#xff1a; 一般驱动部分和功率部分都是做到一起的 一、 驱动电路和功率电路&#xff1a; &#xff08;1&#xff09;电压高&#xff0c;电流大&#xff0c;需要与控制电路分开&#xff0c;并做好隔离保护&#xff08;光耦&…

【课程设计】Java 计算器实现(源码 + 详解)

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

RPA机器人流程自动化如何优化人力资源工作流程

人力资源部门在支持员工和改善整体工作环节方面扮演着至关重要的角色&#xff0c;但是在人资管理的日常工作中&#xff0c;充斥着大量基于规则的重复性任务&#xff0c;例如简历筛选、面试安排、员工数据管理、培训管理、绩效管理等&#xff0c;这些任务通常需要工作人员花费大…

【C++】从零开始map与set的封装

送给大家一句话&#xff1a; 今日的事情&#xff0c;尽心、尽意、尽力去做了&#xff0c;无论成绩如何&#xff0c;都应该高高兴兴地上床恬睡。 – 三毛 《亲爱的三毛》 &#x1f303;&#x1f303;&#x1f303;&#x1f303;&#x1f303;&#x1f303;&#x1f303;&#x…

逻辑分析仪的调试使用

调试软件下载&#xff1a;点击跳转 一、接线 逻辑分析仪 设备 GND --- GND CHX&#xff08;数据通道&#xff09; --- 通信引脚 二、数据采集 图中两个可以选择数字大小的地方分别表示 采样深度 &#xff08;10M Samples&a…

【linux】如何优雅的使用vim编辑器

基本指令 【linux】详解linux基本指令-CSDN博客 【linux】详解linux基本指令-CSDN博客 vim的基本概念 vim有很多模式&#xff0c;小编只介绍三种就能让大家玩转vim了&#xff0c; 分别是&#xff1a; 正常/普通/命令模式 插入模式 末行/底行模式 命令模式 控制屏幕光标的…