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

蓝桥杯每日一题2023.11.18

题目描述

蓝桥杯大赛历届真题 - C 语言 B 组 - 蓝桥云课 (lanqiao.cn)

题目分析 

本题使用搜索,将每一个格子进行初始赋值方便确定是否为相邻的数,将空出的两个格子首先当作已经填好数值为100,此时从第一个格子右边的格子开始搜索,每当格子到y == 4时就跳到下一行格子,每当到x == 3, y == 4时表示这些格子已填好数进行一次答案记录即可,注意确定数字是否合理时首先看是否使用过,再看是否有相邻的数,都合理进行递归,然后回复现场,注意是否存在越界问题。

#include<bits/stdc++.h>
using namespace std;
const int N = 2e3 + 10;
int ans, cnt, a[N][N], flag;
bool vis[N];
int dx[8] = {-1, 0, 1, 0, -1, 1, 1, -1};
int dy[8] = {0, 1, 0, -1, 1, 1, -1, -1};
void dfs(int x, int y)
{
	if(x == 3 && y == 4)
	{
		ans ++;
		for(int i = 1; i <= 3; i ++)
		{
			for(int j = 1; j <= 4; j ++)
			{
				//cout << a[i][j]  << ' ';
			}
			//cout << '\n';
		}
		return;
	}
	if(y > 4)
	{
		x ++;
		y = 1;
	}
	for(int i = 0; i <= 9; i ++)
	{
		if(!vis[i])
		{
			flag = 0;
			for(int j = 0; j < 8; j ++)
			{
				int aa = x + dx[j];
				int bb = y + dy[j];
				if(aa >= 1 && aa <= 3 && bb >= 1 && bb <= 4 && (a[aa][bb] == i + 1 || a[aa][bb] == i - 1))flag = 1; 
			}
			if(flag == 0)
			{
				a[x][y] = i;
				vis[i] = true;
				dfs(x, y + 1);
				a[x][y] = 100;
				vis[i] = false;
			}
		}
	}
}
int main()
{
	for(int i = 1; i <= 3; i ++)
	{
		for(int j = 1; j <= 4; j ++)
		{
			a[i][j] = 100;
		}
	}
	dfs(1, 2);
	cout << ans;
	return 0;
}


http://www.kler.cn/news/134265.html

相关文章:

  • Appium自动化测试:通过appium的inspector功能无法启动app的原因
  • Golang起步篇(Windows、Linux、mac三种系统安装配置go环境以及IDE推荐以及入门语法详细释义)
  • 学霸教你自学人工智能
  • 设计模式(二)-创建者模式(2)-工厂模式
  • 程序员告诉你:人工智能是什么?
  • ClickHouse SQL 查询优化
  • openssl开发详解
  • Android 13 - Media框架(14)- OpenMax(二)
  • 庖丁解牛:NIO核心概念与机制详解 04 _ 分散和聚集
  • 分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测
  • 取数游戏2(动态规划java)
  • MSSQL-逻辑级常用命令
  • 设计模式(二)-创建者模式(2-0)-简单工厂模式
  • CocoaPods podfile 文件配置
  • 丹麦能源袭击预示着更关键的基础设施成为目标
  • UOS统信操作系统QIcon::fromTheme详解
  • 翻译软件Mate Translate mac中文版介绍说明
  • NewStarCTF2023 Reverse Week3 EzDLL WP
  • nodejs+vue实验室上机管理系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计
  • c语言中*p1++和p1++有啥区别
  • 大数据Doris(二十五):Stream Load数据导入演示和其他导入案例
  • android适配鸿蒙系统开发
  • 说一说HTTP1.0、1.1、2.0版本区别和优化
  • c++中的String
  • 【算法】石子合并(区间dp)
  • Python学习之——正则表达式
  • 深度学习入门(第三天)——卷积神经网络
  • LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索Indexes for information retrieve
  • 系统移植-uboot
  • 012 C++ AVL_tree