蓝桥杯2024年第十五届省赛真题-数字接龙

在这里插入图片描述
在这里插入图片描述
思路:DFS,因为输入的i,j的顺序导致,方向向量中x是行编号,y是列编号。方向向量可能和直觉上不同。

错的
//int dx[8]={0,1,1,1,0,-1,-1,-1};
//int dy[8]={1,1,0,-1,-1,-1,0,1};
对的
int dx[]={-1,-1,0,1,1,1,0,-1};
int dy[]={0 , 1,1,1,0,-1,-1,-1};
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'const int N = 15;
int n,k;
int mp[N][N];
bool vis[N][N];
vector<int>ans;int dx[]={-1,-1,0,1,1, 1, 0,-1};
int dy[]={0 , 1,1,1,0,-1,-1,-1};//判断是否交叉
bool charge(int x,int y,int i){if(i%2)if(vis[x+dx[(i+1)%8]][y+dy[(i+1)%8]]&&vis[x+dx[(i-1)%8]][y+dy[(i-1)%8]])return true;return false;
}void dfs(int x,int y,int z,int count){if(x==n-1&&y==n-1&&count==n*n-1){for(auto it:ans)cout<<it;cout<<endl;exit(0);}for(int i=0;i<8;i++){int nx=x+dx[i];int ny=y+dy[i];//越界,访问情况,接龙,交叉需要判断if(nx>=0&&nx<=n-1&&ny>=0&&ny<=n-1&&vis[nx][ny]==false&&mp[nx][ny]==z&&!charge(x,y,i)){vis[nx][ny]=true;ans.push_back(i);count++;dfs(nx,ny,(z+1)%k,count);//回溯count--;vis[nx][ny]=false;ans.pop_back();}}
}void solve(){ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);cin>>n>>k;memset(mp, -1, sizeof(mp));for(int i=0;i<n;i++){for(int j=0;j<n;j++){cin>>mp[i][j];}}//特殊情况if(n==1){cout<<-1;return;}vis[0][0]=true;//不能直接+1,k可能为1dfs(0,0,(mp[0][0]+1)%k,0);cout<<-1<<endl;
}signed main(){int T=1;while(T--)solve();return 0;
}

特殊情况

10 1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
有输出结果

1 1
0
输出-1

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

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

相关文章

笔记:编写函数f(n),实现输人n的值,求出n的阶乘,然后调用此函数计算1!+2!+ 3!+...10!的结果,输出到屏幕上。

文章目录 前言一、n的阶乘是什么&#xff1f;二、编写代码1.代码2.优化代码 总结 前言 题目&#xff1a;编写函数f(n),实现输人n的值&#xff0c;求出n的阶乘&#xff0c;然后调用此函数计算1&#xff01;2! 3!…10!的结果&#xff0c;输出到屏幕上。 在编写函数 f(n) 前&…

Oracle昨日复习以及注意事项(与MYSQL不同的点)

一、SQL语句复习 1、创建表空间 表空间&#xff0c;指定存储文件的位置&#xff0c; 再去创建用户 &#xff0c;再指定表空间 创建表 数据库 &#x1f447; 表空间 创建表空间 create table space 表空间名字 datafile 路径&#xff08;保存数据路径&#xff09; size 100m a…

数据结构(顺序栈

目录 1. 讲解&#xff1a;2. C代码实现&#xff1a;小结&#xff1a; 1. 讲解&#xff1a; 用顺序的物理结构&#xff08;数组&#xff09;存储栈这个数据结构&#xff0c;实现栈的创建、销毁、增删查、判空。 top指针的指向位置有两种实现方法&#xff1a;一个是指向栈顶元素…

页缓存(PageCache)和预读机制(readahead )

页缓存&#xff08;PageCache)和预读机制&#xff08;readahead &#xff09; 页缓存&#xff08;PageCache)是操作系统&#xff08;OS&#xff09;对文件的缓存&#xff0c;用于加速对文件的读写。 page 是内存管理分配的基本单位&#xff0c; Page Cache 由多个 page 构成&…

LeetCode题练习与总结:爬楼梯--70

一、题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 …

《Super Simple Skybox》天空盒 -- 创造绝美天空的神奇工具!限时免费!

《Super Simple Skybox》天空盒 -- 创造绝美天空的神奇工具&#xff01;限时免费&#xff01; 前言内容介绍资源特色动态&#xff0c;美丽的天空在几秒钟内即插即用 功能列表领取兑换码 前言 ^^在这个充满创意与想象的世界里&#xff0c;Unity 免费资源犹如一颗璀璨的明珠&…

react合成事件与原生事件区别备忘

朋友问起在做一个下拉框组件&#xff0c;下拉的点击事件是用react的onClick触发&#xff0c;外部区域点击关闭则用dom的原生点击事件绑定&#xff0c;问题是下拉的点击事件无法阻止冒泡到dom的原生事件。 我说&#xff0c;react的合成事件 和 原生事件是不一样的&#xff0c;尽…

三、fpga对完成过滤和校验的有效包数据进行有效像素提取、MATLAB对数据源进行处理与下发(完整实现pc机→显示器通信链路)

前言:上篇文章实现了MATLAB模拟发送UDP以太网协议数据包到fpga,能实现双沿数据→单沿数据转换,并将转换后的数据进行包过滤和crc校验,本篇内容要实现真正的从pc机下发视频数据,经过千兆以太网传输存储到fpga 的ddr3中,然后通过hdmi读出到显示屏上。 文章目录 一、模块设…

【Qt学习笔记】connect函数的使用方法总结

connect函数的使用方法总结 一&#xff0c;简介二&#xff0c;connect函数的标准格式&#xff1a;三&#xff0c;参数的含义四&#xff0c;示例五&#xff0c;注意 一&#xff0c;简介 在Qt框架中&#xff0c;connect函数用于连接信号和槽&#xff0c;是Qt信号和槽机制的核心。…

鸿蒙入门06-常见装饰器( 简单装饰器 )

装饰器是鸿蒙开发中非常重要的一个环节因为在很多地方我们都需要用到装饰器并且如果我们想高度的复用, 那么装饰器就是必不可少的一环接下来我们就来介绍一些常见的装饰器注意 : 所有装饰器首字母大写 Entry 用来装饰 struct 使用表示页面的入口 Component 装饰 struct, …

linux二元比较操作符

Linux中如果要比较两个变量或数字&#xff0c;常用二元比较操作符&#xff1b;对于整数之间的比较或字符串之间的比较会有所区别&#xff0c;梳理如下&#xff0c;供大家参考使用&#xff1a; 1.整数比较 二元比较操作符说明备注-eq等于if [ "$a" -eq "$b&quo…

基于Springboot的论坛管理系统

基于SpringbootVue的论坛管理系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 公告 热门帖子 论坛新天地 新闻资讯 留言反馈 后台登录 用户管理 公告管理…

java宠物领养系统的设计与实现(springboot+mysql+源码)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的宠物领养系统的设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于Spring Bo…

JavaWeb--04YApi,Vue-cli脚手架Node.js环境搭建,创建第一个Vue项目

04 1 Yapi2 Vue-cli脚手架Node.js环境搭建配置npm的全局安装路径 3 创建项目&#xff08;这个看下一篇文章吧&#xff09; 1 Yapi 前后端分离中的重要枢纽"接口文档",以下一款为Yapi的接口文档 介绍&#xff1a;YApi 是高效、易用、功能强大的 api 管理平台&#…

Springboot引入外部jar包并打包jar包

前言 spring boot项目开发过程中难免需要引入外部jar包&#xff0c;下面将以idea为例说明操作步骤 将需要的jar包导入到项目中 2.在maven中引入jar包 <dependency><groupId>com</groupId><!--随便填的文件夹名称--><artifactId>xxx</artif…

无人棋牌室为什么频现倒闭潮?

现在小红书抖音上关于棋牌室转让的帖子层出不穷&#xff0c;许多无人棋牌室纷纷倒闭&#xff0c;其背后的原因值得我们深思。 首先&#xff0c;选址的决策至关重要。一些商家可能过于看重场地的面积和价格&#xff0c;而忽视了其他重要的因素。事实上&#xff0c;仅仅因为房子大…

linux内核初始化成功后是如何过渡到android初始化的

Android用的linux内核&#xff0c;以完成OS该有的功能&#xff0c;例如&#xff0c;文件系统&#xff0c;网络&#xff0c;内存管理&#xff0c;进程调度&#xff0c;驱动等 &#xff0c;向下管理硬件资源向上提供系统调用。另一些Android特有驱动也放在内核之中。 当linux内核…

(delphi11最新学习资料) Object Pascal 学习笔记---第10章第1节( 对比其他编程语言中的属性)

10.1.1 对比其他编程语言中的属性 ​ 如果你将这与Java或C#进行比较&#xff0c;在这两种语言中&#xff0c;属性都映射到方法&#xff0c;但是Java中是一种隐式的映射&#xff08;属性基本上是一种约定&#xff09;&#xff0c;而不是显式的编程元素。与Java类似&#xff0c;…

【Qt】Qt安装包、源码、子模块(submodules)下载

1、Qt 4.0 ~ Qt5.14 Qt 4.0 ~ Qt5.14 离线安装包、源码和子模块(submodules)源码下载路径: https://download.qt.io/new_archive/qt/以Qt5.7.1为例,注意子模块都是源码,需要独立编译 2、Qt5.15 ~ Qt6.7 Qt5.15 ~ Qt6.7源码和子模块(submodules)源码下载路径: htt…

微服务OR单体架构

微服务OR单体架构 为什么会出现微服务和单体架构的争议&#xff1f;在实际的业务中&#xff0c;你选择的是微服务还是单体架构&#xff1f;在云上&#xff0c;哪种架构更符合未来云的发展趋势呢? 说到微服务OR单体架构&#xff0c;其实这两个场景并不存在很明确的争议界限的&a…