C++笔试强训day34

news2024/9/21 12:46:09

目录

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';
		else
			cout << 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;
	else
		cout << 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.coloradmin.cn/o/1702529.html

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

相关文章

su模型转3d模型不够平滑怎么办?---模大狮

当将SU模型转换为3D模型时&#xff0c;可能会遇到模型不够平滑的情况&#xff0c;这会影响到最终的渲染效果和视觉体验。本文将探讨在此情况下应该如何解决&#xff0c;帮助读者更好地处理这一常见的问题。 一、检查SU模型细分程度 首先要检查的是原始的SU模型的细分程度。在S…

Python爬虫项目实战:百度任意图片抓取

大家好&#xff0c;我是南枫&#xff0c;这篇文章我将给大家介绍如何使用Python爬虫来达到想爬哪个明星图片就能爬下来的效果&#xff0c;那我们接下来看看如何实现的吧。 导入Python的requests库和re库。requests库用于发送HTTP请求&#xff0c;而re库用于处理正则表达式。 通…

鸿蒙知识点总结

1 Stage模型应用程序包结构 在开发态&#xff0c;一个应用包含一个或者多个Module&#xff0c;可以在DevEco Studio工程中创建一个或者多个Module。Module是HarmonyOS应用/服务的基本功能单元&#xff0c;包含了源代码、资源文件、第三方库及应用/服务配置文件&#xff0c;每一…

5款好用的AI写作软件,一键生成高质量文章

在当今信息快速发展的时代&#xff0c;AI写作软件逐渐成为创作者们的得力助手。它们能够凭借先进的技术和算法&#xff0c;一键生成高质量的文章&#xff0c;为创作者们节省大量的创作时间和精力。以下是5款备受好评的AI写作软件&#xff0c;下面在本文中分享给大家&#xff0c…

SpringBoot中注解@RestController | @ResponseBody | @Controller

ResponseBody 可以修饰类和方法 Controller 和 RestController 只能修饰类 RestController 告诉Spring&#xff0c;帮我们管理这个代码&#xff0c;我们后续访问时&#xff0c;才能访问到 RequestMapping 路由映射&#xff0c;可以修饰方法&#xff0c;也可以修饰类 访问地址…

蓝桥杯单片机-国赛6——第13届国赛主观题

0.比赛真题 1. 编程心得 DAC输出需要放到while循环里&#xff0c;一直持续的输出才能检测到稳定电压涉及锁存器5的部分&#xff1a;relay、buzz、motor……等不要放到while循环里&#xff0c;会造成蜂鸣器暴鸣。而是应该写一个带形参的函数&#xff0c;直接进行调用led的刷新&a…

作业-day-240527

Cday1思维导图 定义自己的命名空间my_sapce&#xff0c;在my_sapce中定义string类型的变量s1&#xff0c;再定义一个函数完成对字符串的逆置 #include <iostream>using namespace std;namespace my_space {string s1"abc123";string recover(string s){int i0…

SEO 真心没有必要纠结百度收录升降的!

明月会经常收到站长们发来有关百度收录下降寻求帮助的咨询&#xff0c;针对这个问题明月也没有很好的解决办法&#xff0c;因为这是目前搜索引擎的常态&#xff0c;几乎每天都有可能下降和上升&#xff0c;几乎是没有任何规律的。因为现在搜索引擎无时无刻不在更新和调整算法&a…

将YOLO格式数据集转换为YOLO-Mamba等特定工具指定的数据集格式

目录 克隆Github YOLO-Mamba源码YOLO-Mamba数据集格式下载的公开数据集目录边界框坐标文件类别标签文件 数据集格式转换代码转换格式的效果展示 今天为大家解析YOLO-Mamba这篇论文开源的代码&#xff0c;首先讲解YOLO格式数据集转换为YOLO-Mamba等特定工具指定的数据集格式的操…

VMware ESXi中安装Proxmox VE

0、巴拉巴拉 前几天某行业HW&#xff0c;闲暇的时候几个技术人员聊天&#xff0c;臭味相投的聊到自己玩的东西。有个玩家说家里用工作站安装Proxmox VE&#xff0c;然后在上面安装软路由、安装NAS。我以前一直想玩玩&#xff0c;没有付诸行动&#xff0c;所以也想弄个集中的方案…

快速失败“fail-fast”和安全失败“fail-safe”

目录 快速失败——fail-fast 异常原因 正常原因 安全失败“fail-safe” 快速失败——fail-fast java的快速失败机制是java集合框架中的一种错误检测机制&#xff0c;当多个线程对集合中的内容进行修改时可能就会抛出ConcurrentModificationException异常。不仅仅在多线程状态…

[笔试强训day09]

文章目录 BC146 添加逗号DP2 跳台阶JZ61 扑克牌顺子解法一&#xff1a;排序模拟解法二&#xff1a;规律哈希 BC146 添加逗号 BC146 添加逗号 #include<iostream> #include<string>using namespace std;int main() {string s;cin>>s;string ans;for(int i0;i…

Docker学习笔记 - 创建自己的image

目录 基本概念常用命令使用docker compose启动脚本创建自己的image 使用Docker是现在最为流行的软件发布方式&#xff0c; 本系列将阐述Docker的基本概念&#xff0c;常用命令&#xff0c;启动脚本和如何生产自己的docker image。 在我们发布软件时&#xff0c;往往需要把我…

了解区块链基础设施,共同构建安全且强大的Sui网络

区块链基础设施的范畴很广&#xff0c;但其核心是那些直接与网络互动的计算机。这些实体通常被称为节点&#xff0c;分为不同的类型&#xff0c;例如维护完整区块链副本的全节点&#xff0c;以及作为共识决定者的验证节点。除了这两种类型之外&#xff0c;还有其他类型的节点&a…

链动3+1模式:引领企业创新发展的全新商业模式

在数字化时代&#xff0c;企业正积极寻求创新策略以应对竞争激烈的市场环境。链动31模式&#xff0c;作为一种前沿的商业模式&#xff0c;为企业带来了全新的发展机遇。本文将对链动31模式进行深度剖析&#xff0c;并与传统的链动21模式进行对比&#xff0c;以展现其独特魅力和…

大事件项目实战

初始化 创建项目 新建api_server文件夹为项目根目录&#xff0c;并在项目中运行如下的命令&#xff0c;初始化管理配置文件&#xff1a; npm init -y 运行如下的命令&#xff0c;安装特定版本的express: npm i express4.17.1 在项目根目录中新建app.js作为整个项目的入口…

Bootstrap5

Bootstrap5-容器 容器是Bootstrap—个基本的构建块&#xff0c;它包含、填充和对齐给定设备或视口中的內容。 Bootstrap 需要一个容器元素来包裏网站的内容 我们可以使用以下两个容器类&#xff1a; .container 类用于固定宽度并支持响应式布局的容器。.container-fluid 类用…

Linux下Qt Creator无法输入中文(已解决)

1. 首先确保安装了搜狗输入法&#xff0c;且能正常运行。 2.克隆源码到本地。 git clone https://gitcode.com/fcitx/fcitx-qt5.git 3.检查Qt Creator版本&#xff0c;如下图所示&#xff0c;为基于Qt6的。 4. 进入源码目录&#xff0c;建立build文件夹&#xff0c;修改CMak…

常见电路的分类

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

【Hadoop】DataNode 数据盘进行磁盘DiskBalancer

目录 ​一、问题原因 二、DiskBalancer介绍 三、DiskBalancer实战 3.1 生成plan json文件 3.2 执行plan json文件 一、问题原因 阿里云事件磁盘损坏后&#xff0c;使用新磁盘进行了替换&#xff0c;或者当发现HDFS容量不够需要扩展空间时&#xff0c;由运维管理人员陆陆续…