蓝桥杯——16

news2024/11/23 12:40:11

学习视频:17-深搜的剪枝策略视频讲解_哔哩哔哩_bilibili

#include<iostream>
#include<cstring>
using namespace std;
int n, m;
string maze[110];
bool vis[110][110];
int dir[4][2] = { {0,1},{0,-1},{1,0},{-1,0} };
int ans = 100000;
bool in(int x, int y) {
	return x >= 0 && x < n && y >= 0 && y < m;
}
void dfs(int x, int y, int step) {
	//剪枝
	if (step >= ans) return;
	if (maze[x][y] == 'T') {
		ans = step;
		return;
	}
	vis[x][y] = 1;
	int fx, fy;
	for (int i = 0; i < 4; i++) {
		fx = x + dir[i][0];
		fy = y + dir[i][1];
		if (in(fx, fy) && !vis[fx][fy] && maze[fx][fy] != '*') {
			dfs(fx, fy, step + 1);
		}
	}
	vis[x][y] = 0;
}
int main() {
	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		cin >> maze[i];
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			if (maze[i][j] == 'S')
				dfs(i, j, 0);
		}
	}
	cout << ans << endl;

	return 0;
}
/*
3 4
S**.
....
***T
*/

Q:k个数的和

#include<iostream>
#include<cstring>
using namespace std;
int n, k, sum, ans;
int a[40];
bool xuan[40];
void dfs(int s, int cnt, int pos) {
	//剪枝
	if (s > sum || cnt > k) {
		return;
	}
	if (s == sum && cnt == k) {
		ans++;
	}
	for (int i = pos; i < n; i++) {
		if (!xuan[i]) {
			xuan[i] = 1;
			dfs(s + a[i], cnt + 1, i+1);
			xuan[i] = 0;
		}
	}

}
int main() {
	n = 30;
	k = 8;
	sum = 200;
	for (int i = 0; i < 30; i++) {
		a[i] = i + 1;
	}
	dfs(0, 0, 0);
	cout << ans;
	return 0;
}

Q:

#include<iostream>
#include<cstring>
using namespace std;
const int N = 10;
int n, m, T;
char mat[N][N];
bool vis[N][N];
int dx[4] = { 0,0,-1,1 };
int dy[4] = { 1,-1,0,0 };
bool ok;
void dfs(int x, int y, int t) {
	if (ok) return;
	if (t = T) {
		if (mat[x][y] == 'D') ok = true;
		return;
	}
	vis[x][y] = true;
	for (int i = 0; i < 4; i++) {
		int tx = x + dx[i];
		int ty = y + dy[i];
		if (tx < 0 || ty < 0 || tx >= n || ty >= m || mat[tx][ty] == 'X')
			continue;
		dfs(tx, ty, t + 1);
	}
	vis[x][y] = false;
}

int main() {
	cin >> n >> m >> T;
	for (int i = 0; i < n; i++) {
		cin >> mat[i];
	}
	int sx, sy, ex, ey;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			if (mat[i][j] == 'S') sx = i, sy = j;
			if (mat[i][j] == 'D')ex = i, ey = j;
		}
	}
	if ((sx + sy + ex + ey + T) % 2 != 0) {
		cout << "NO" << endl;
	}
	else {
		ok = false;
		dfs(sx, sy, 0);
		if (ok)
			cout << "YES" << '\n';
		else
			cout << "NO" << endl;
	}
	return 0;
}
/*
4 4 5
S.X.
..X.
..XD
....
*/

Q:引爆炸弹

#include<iostream>
#include<cstring>
using namespace std;
char mat[1010][1010];
int n, m;
bool row[1010], col[1010];
void boom(int x, int y) {
	mat[x][y] = 0;
	if (!row[x]) {
		row[x] = true;
		for (int i = 0; i < m; i++) {
			if (mat[x][i] == '1')
				boom(x, i);
		}

	}
	if (!col[y]) {
		col[y] = true;
		for (int i = 0; i < n; i++) {
			if (mat[i][y] == '1')
				boom(i, y);
		}

	}
}

int main() {
	int cnt = 0;
	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		cin >> mat[i];
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			if (mat[i][j] == '1') {
				boom(i, j);
				cnt++;
			}
		}
	}
	cout << cnt;
	return 0;
}
/*
5 5
00010
00010
01001
10001
01000
*/

Q:生日蛋糕

放弃了,好难!

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

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

相关文章

CesiumJS内置三维数字地球,你都不知道效果有多炫酷。

CesiumJS是一个开源的JavaScript库&#xff0c;用于在Web浏览器中创建高性能的3D地球和地理空间应用程序。它提供了强大的工具和API&#xff0c;使开发者能够构建具有交互性、可视化和地理空间分析功能的应用。 以下是CesiumJS的一些主要特点和功能&#xff1a; 3D地球可视化&…

win11 连接海康摄像头 ONVif协议

目录 Win 11 通过脚本打开自带的IE浏览器访问海康摄像头 海康摄像头设置支持onvif协议 安装onvif协议 onvif协议示例代码 Win 11 通过脚本打开自带的IE浏览器访问海康摄像头 第一步、桌面右键新建一个 txt 的文档 第二步、打开文档并且复制粘贴下面代码 CreateObject(&…

reids-AOF(Append Only File)持久化使用方法

一&#xff0c;什么是AOF&#xff08;Append Only File&#xff09; 将我们所有的命令都记录下来&#xff0c;history&#xff0c;恢复的时候就把这个文件全部再执行一遍 以日志的形式来记录每个写的操作&#xff0c;将Redis执行过的所有指令记录下来&#xff08;读操作不记录&…

vue项目node版本问题

1. 启动项目报错 2. 解决 &#xff08;1&#xff09;更新依赖 npm install --legacy-peer-deps &#xff08;2&#xff09;如果不行就重装node node版本为14.15.1 sass版本为 node-sass": "^6.0.1" "sass-loader": "^6.0.…

Go语言实现Redis分布式锁2

项目地址: https://github.com/liwook/Redislock 1.支持阻塞式等待获取锁 之前的是只尝试获取一次锁&#xff0c;要是获取失败就不再尝试了。现在修改为支持阻塞式等待获取锁。 添加LockOptions结构体 添加option.go文件。 在LockOptions中 isBlock表示是否是阻塞模式blo…

Mysql底层原理六:InnoDB 数据页结构

1.行格式 1.1 Compact行格式 1.1.1 示意图 1.1.2 准备一下 1&#xff09;建表 mysql> CREATE TABLE record_format_demo (-> c1 VARCHAR(10),-> c2 VARCHAR(10) NOT NULL,-> c3 CHAR(10),-> c4 VARCHAR(10)-> ) CHARSETascii ROW_FORMATCOM…

Web前端—属性描述符

属性描述符 假设有一个对象obj var obj {a:1 }观察这个对象&#xff0c;我们如何来描述属性a&#xff1a; 值为1可以重写可以遍历 我们可以通过Object.getOwnPropertyDescriptor得到它的属性描述符 var desc Object.getOwnPropertyDescriptor(obj, a); console.log(desc);我…

AD转换(模数转换)

一、AD的基本概念 AD转换是将时间连续和幅值连续的模拟量转换为时间离散、幅值也离散的数字量。使输出的数字量与输入的模拟量成正比。 AD转换的过程有四个阶段&#xff0c;即采样、保持、量化和编码。 采样是将连续时间信号变成离散时间信号的过程。经过采样&#xff0c;时间…

基于 SSM 医院病历管理系统的设计与实现

摘 要 病历管理系统是医院管理系统的重要组成,在计算机技术快速发展之前&#xff0c;病人或者医生如果想记录并查看自己的健康信息是非常麻烦的&#xff0c;因为在以往病人的健康信息通常只保存在自己的病历卡或者就诊报告中&#xff0c;如果在就诊时想进行查看只能通过观看…

文件处理的神器,一键上传签署,安全又高效!

客户介绍 某技术股份有限公司是一家在高科技领域深耕多年的知名企业&#xff0c;专注于技术创新与产品研发&#xff0c;致力于为客户提供前沿、高效的解决方案。在业务范围方面&#xff0c;该公司涵盖了多个领域&#xff0c;包括智能制造、新能源、信息技术等。公司凭借卓越的…

VBA_NZ系列工具NZ04:VBA网络连接测试使用说明

我的教程一共九套及VBA汉英手册一部&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到数据库&#xff0c;到字典&#xff0c;到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑&#xff0c;这么多知识点该如何组织…

Qt Creator 新建项目

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;QT❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、使用 Qt Creator 新建项目 1、新建项目 2、选择项目模板 3、选择项目路径 4、选择构建系统 5…

linux大文件IO

在Linux中处理大文件&#xff08;通常指大小超过2GB的文件&#xff09;时&#xff0c;需要使用特定的系统调用和标志&#xff0c;以确保程序能够正确地处理大文件的读写。这主要是因为在32位系统上&#xff0c;传统的文件偏移量和文件大小使用off_t类型表示&#xff0c;它通常是…

115.不同的子序列

给你两个字符串 s 和 t &#xff0c;统计并返回在 s 的 子序列 中 t 出现的个数&#xff0c;结果需要对 109 7 取模。 示例 1&#xff1a; 输入&#xff1a;s "rabbbit", t "rabbit" 输出&#xff1a;3 解释&#xff1a; 如下所示, 有 3 种可以从 s 中…

基于RBF的时间序列预测模型matlab代码

整理了基于RBF的时间序列预测模型matlab代码&#xff0c; 包含数据集。采用了四个评价指标R2、MAE、MBE、MAPE对模型的进行评价。RBF模型在数据集上表现非常好。 训练集数据的R2为&#xff1a;0.99463 测试集数据的R2为&#xff1a;0.96973 训练集数据的MAE为&#xff1a;0.…

本地linux怎样先亚马逊云服务器上传文件

使用亚马逊云服务器的密钥&#xff0c;并通过srp命令&#xff0c; 连接上传&#xff1a; scp -i <密钥文件路径> <本地文件路径> <远程主机用户名><远程主机地址>:<目标路径> scp -i assig2.pem data.txt ubuntuec2-xx-xxx-xx-xx1.compute-x.…

hadoop103: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

分析&#xff1a; 在启动hadoop服务的时候&#xff0c;遇到了这个问题&#xff1a; hadoop103: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 这个一看就是&#xff0c;密钥问题 于是ssh 主机名就行测试 需要输入密码&#xff0c;就说明这里有问…

Prometheus+grafana监控nacos和spring-boot服务(增加自定义指标)(七)

前面记录了项目中常用的各种中间件的指标采集器的用法及搭建方式 &#xff0c; 由于所有组件写一篇幅过长&#xff0c;所以每个组件分一篇方便查看&#xff0c;前六篇链接如下 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana…

[lesson16]类的真正形态

类的真正形态 类的关键字 struct在C语言中以及有了自己的含义&#xff0c;必须继续兼容 在C中提供了新的关键字class用于类的定义 class和struct的用法是完全相同的 在用struct定义类时&#xff0c;所有成员的默认访问级别为public 在用class定义类时&#xff0c;所有成员…

奇怪的电梯

题目描述&#xff1a; 思路&#xff1a; 见代码注释 AC代码&#xff1a; #include <bits/stdc.h> using namespace std; int n, A, B; int t[250]; //记录到达每层所用的最短时间 int a[250]; void dfs(int lou, int sum) {//lou是当前的楼层数&#xff0c;sum为当前按…