首页 > 其他分享 >蓝桥杯-AB路线(详细原创)

蓝桥杯-AB路线(详细原创)

时间:2024-05-29 22:23:10浏览次数:20  
标签:aa 路线 AB 格子 bb int st 蓝桥 stp

问题描述:

有一个由 N × M 个方格组成的迷宫,每个方格写有一个字母 A 或者 B。小蓝站在迷宫左上角的方格,目标是走到右下角的方格。他每一步可以移动到上下左右相邻的方格去。

由于特殊的原因,小蓝的路线必须先走 K 个 A 格子、再走 K 个 B 格子、再走 K 个 A 格子、再走 K 个 B 格子......如此反复交替。

请你计算小蓝最少需要走多少步,才能到达右下角方格? 注意路线经过的格子数不必一定是 K 的倍数,即最后一段 A 或 B 的格子可以不满 K 个。起点保证是 A 格子。

例如 K=3 时,以下 3 种路线是合法的:

AAA
AAAB
AAABBBAAABBB

以下 3 种路线不合法:

ABABAB
ABBBAAABBB
AAABBBBBBBAAA

输入格式

第一行包含三个整数 N、M 和 K。

以下 N 行,每行包含 M 个字符 ( A 或 B ),代表格子类型。

输出格式

一个整数,代表最少步数。如果无法到达右下角,输出 -1。

样例输入

4 4 2
AAAB
ABAB
BBAB
BAAA

样例输出

8

样例说明

每一步方向如下:下右下右上右下下;路线序列:AABBAABBA。

评测用例规模与约定

对于 20% 的数据,1 ≤ N, M ≤ 4。

对于另 20% 的数据,K=1。

对于 100% 的数据,1 ≤ N, M ≤ 1000,1 ≤ K ≤ 10。

题解:

宽搜bfs题, 用queue队列按要求搜索。

但需要注意 正常二维bfs搜索标记是否访问过的st数组用的二维, 但是这题用的st数组是三维

st含义:

st[x][y][z]: 坐标x, y上的字符, 在第z次访问的时候是否访问过了

如下图:
图中圈起来的B, 当每一步走的是: 下下下下, 此时第一次遍历到B, st[3][0][0] = true, 然后继续 下下下右上上上左, 此时又一次遍历到这个B, st[3][0][2] = true, 最后上右右右下下下下, 到达(n,m)

  • 当第一次遍历到B的时候st中的z = 0, 因为此时的B位于BBB的第一个
  • 当第二次遍历到B的时候st中的z = 2, 因为此时的B位于BBB的第三个

如果我们用的还是二维st, 那么就不可能第二次遍历到B, 也就找不到答案了

ac代码

标签:aa,路线,AB,格子,bb,int,st,蓝桥,stp
From: https://www.cnblogs.com/xxctx/p/18221125

相关文章

  • idea右边栏目找不到数据库database的方法
    第一步:打开file>settings第二步:找到插件plugins,然后在marketplace输入data,找到databasenavigate,点击安装install第三部:视图view>工具窗口Toolwindows>DBbrowser然后就出现了,点击加号即可连接数据库同时也可以拖动窗口根据个人习惯放在页面的底部或者左侧右侧.......
  • 多A*算法路径规划(附MATLAB代码)
     A*算法介绍A*算法是一种常用的寻路算法,被广泛应用于人工智能和游戏开发中。该算法通过评估每个节点的代价和启发式函数来找到最佳路径。在这篇博文中,我们将深入探讨A*算法的原理。A*算法的核心思想是在搜索过程中综合考虑两个因素:已经花费的代价和还需要花费的代价。具体而......
  • PSO算法路径规划(附MATLAB代码)
    粒子群优化(PSO)算法一种启发式优化算法,灵感来源于鸟群或鱼群等群体智能行为的模拟。PSO算法最早由Kennedy和Eberhart于1995年提出,通常用于解决搜索空间连续、高维的优化问题。PSO算法模拟了鸟群中鸟类搜索食物的行为。在PSO算法中,候选解称为粒子,每个粒子通过搜索空间中移动来......
  • NumPy 泊松分布模拟与 Seaborn 可视化技巧
    泊松分布简介泊松分布是一种离散概率分布,用于描述在给定时间间隔内随机事件发生的次数。它常用于模拟诸如客户到达商店、电话呼叫接入中心等事件。参数泊松分布用一个参数来定义:λ:事件发生的平均速率,表示在单位时间内事件发生的平均次数。公式泊松分布的概率质量函数(PMF)......
  • 解决labelme中AI Model Ai Mask Ai Polygon选项下载onnx权重慢或者无法下载问题
    新版的labelme中已经内置了AIModel功能,能够通过模型智能识别图像中想要标注的区域,能够显著减少工作量。但是第一次使用这个功能的时候会要下载模型权重,此时一般速度会非常慢,或者出现报错无法下载,下面提出一种解决方法。如图,有5种模型,每个模型需要分别下载encoder和decoder两......
  • 【KELM回归预测】基于麻雀算法优化核极限学习SSA-KELM-Adaboost实现风电回归预测附mat
    以下是使用麻雀算法优化核极限学习机(SSA-KELM)和Adaboost算法实现风电回归预测的MATLAB代码示例:matlab复制%导入风电数据load(‘wind_data.mat’);%假设数据存储在wind_data.mat文件中X=wind_data(:,1:end-1);%输入特征Y=wind_data(:,end);%输出标签%数......
  • antdv: Each record in table should have a unique `key` prop,or set `rowKey` to a
    在使用ant-designvue框架的时候,表格组件里面会碰到 Eachrecordintableshouldhaveaunique key prop,orset rowKey toanuniqueprimarykey这样的报错,具体见下图 原因分析:我看了一下官网,以及搜索了很多答案,最终原因是:在Table中,dataSource和columns里的数据......
  • 第14届蓝桥杯B组国赛
    子2023#include<bits/stdc++.h>usingnamespacestd;usingLL=longlong;voidsolve(){ vector<int>Q; for(inti=1;i<=2023;++i){ intx=i; vector<int>tmp; while(x){ inty=x%10; if(y==2||y==0|......
  • 蓝桥杯嵌入式 第六届国赛 更新中……
    题目配置注意事项复制LCD的工程,先配置资源---勾选完选项一定要再看一眼,可能选择错误ADC:配置ADC2_IN15,对应PB15引脚EEROM,配置PB6和PB7按键输入模式PB0、PB1、PB2、PA0LED一定要使能PD2PWM互补输出,用TIM15TIM6-10ms基准定时器代码-默写大师先......
  • C++ 线程同步condition_variable的使用
    一,condition_variable使用步骤创建一个scondition_variable对象。创建一个互斥量对象mutex。创建两个线程:等待线程和唤醒线程。在等待线程中,使用unique_lock锁定互斥量,并调用wait函数进入等待状态。在唤醒线程lock_guard锁定互斥量,并调用notify_one或notify_all函数唤醒等......