藏宝图(蓝桥杯模拟5)

2018年计蒜客蓝桥杯模拟赛(2018.3.25)题解(未完待续) (题解参考:2018年蓝桥杯模拟赛第五场题解  by islands)一、题目列表1. (3')矩阵求和        给你一个n×n的矩阵,里面填充1到n×n。例如当n等于3的时候,填充的矩阵如下。        1 2 3        4 5 6        7 8 9        现在我们把矩阵中的每条边的中点连起来,这样形成了一个新的矩形,请你计算一下这个新的矩形的覆盖的数字的和。比... 阅读详情

蒜头君得到一张藏宝图。藏宝图是一个 10 \times 1010×10 的方格地图,图上一共有 1010 个宝藏。有些方格地形太凶险,不能进入。

整个图只有一个地方可以出入,即是入口也是出口。蒜头君是一个贪心的人,他规划要获得所有宝藏以后才从出口离开。

藏宝图上从一个方格到相邻的上下左右的方格需要 1

1 天的时间,蒜头君从入口出发,找到所有宝藏以后,回到出口,最少需要多少天。

解析:

        思路:

                  先通过bfs求出宝藏之间的距离(把出入口也看成宝藏,用1表示宝藏的位置,在数组中就是1与1的距离),

                  然后通过dfs求出最短路径。

        细节:

                1,为了方便求1与1之间的距离,所以把等于1的点存入一个数组v,1与1的距离用e[][]数组来存;

                2,bfs用了优先队列;

                3,dfs别忘了还要从入口出去。

当然这样时间复杂度过高也无所谓,谁要这是蓝桥被呢。

#include <stdio.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <string.h>
#include <queue>
using namespace std;
int inf=0x3f3f3f3f;
char mapp[11][11]=
{
    "1......1..",
    "...*..1...",
    ".*..1..*..",
    ".1...*..1.",
    ".*..1.*...",
    "..*....*..",
    ".....*..1.",
    ".*.*..1...",
    ".1....**..",
    "..*..*1..."
};
struct node
{
    int x,y;
    int s;
    bool friend operator <(node a,node b)
    {
        return a.s>b.s;
    }
} p;
vector<node>v;
int e[11][11];
void init()
{
    for (int i=0; i<10; i++)
        for (int j=0; j<10; j++)
            if(mapp[i][j]=='1')
            {
                p.x=i;
                p.y=j;
                v.push_back(p);
            }
    fill(e[0],e[0]+10*11,inf);
}
int sx,sy,ex,ey;
int to[4][2]= {1,0,0,1,-1,0,0,-1};
int vis[11][11];
int bfs(int x,int y)
{
    priority_queue<node>q;
    memset(vis,0,sizeof(vis));
    p.x=x,p.y=y,p.s=0;
    q.push(p);
    vis[x][y]=1;
    while(!q.empty())
    {
        p=q.top();
        q.pop();
        if(p.x==ex&&p.y==ey)
        {
            return p.s;
        }
        node nx;
        for (int i=0; i<4; i++)
        {
            nx.x=p.x+to[i][0];
            nx.y=p.y+to[i][1];
            if(nx.x<0||nx.x>=10||nx.y<0||nx.y>=10||mapp[nx.x][nx.y]=='*'||vis[nx.x][nx.y])
                continue;
            vis[nx.x][nx.y]=1;
            nx.s=p.s+1;
            q.push(nx);
        }
    }
    return 0;
}

int summin=inf,len,f[11];
int trace[11];
int endtrace[11];
void dfs(int id,int step,int sum)
{
    trace[step]=id;
    if(step==len-1)
    {
        if(sum+e[id][0]<summin)
            {
                for (int i=0;i<len;i++)
                    endtrace[i]=trace[i];
                summin=sum+e[id][0];
            }
        return ;
    }
    f[id]=1;
    for (int i=0; i<len; i++)
        if(!f[i]&&e[id][i]!=inf)
            dfs(i,step+1,sum+e[id][i]);
    f[id]=0;
}
int main ()
{
    init();
    len=v.size();
    for (int i=0; i<len; i++)
        for (int j=0; j<=i; j++)
            if(i!=j)
            {
                sx=v[i].x,sy=v[i].y;
                ex=v[j].x,ey=v[j].y;
                int d=bfs(sx,sy);
                e[i][j]=d;
                e[j][i]=d;
            }
    dfs(0,0,0);
    cout<<summin<<endl;
    for (int i=0;i<len;i++)
        cout<<endtrace[i]<<"->";
        cout<<0;
    return 0;
}


【FPGA】DDR3调试总结 DDR3管脚根据不同的功能可以分为:数据组、地址组、控制组和电源组。如图上所示,共96个管脚。 阅读详情

相关推荐

在trae CN中使用conda环境(已解决)

Trae CN 是字节跳动于 2025 年 3 月 3 日发布的国内首个 AI 原生集成开发环境(AI IDE)123。

zwzscnds的博客 6937

JS寻找宝藏游戏

在地图上随机点一个地方,然后图片下方会出现如下文字: distance是宝藏与点击的地方的距离 if(distance < 10){ return "Boiling hot!"; } else if(distance < 20){ return "Really hot";

梧桐下的四叶草 1754

从零搭建一个虚拟ECU:手把手用Autosar CP模块模拟汽车灯控系统(基于Vector工具链)

本文详细介绍了如何使用Vector工具链从零搭建一个基于Autosar CP架构的虚拟ECU系统,模拟汽车灯光控制功能。通过环境搭建、模块配置、通信栈设置到灯光控制逻辑实现的全流程指导,帮助开发者掌握Autosar CP模块术语的实际应用,并提供了系统集成与测试的实用方案。

weixin_42628688的博客 312

蓝桥杯 模拟赛 F藏宝图

蒜头君得到一张藏宝图。藏宝图是一个 10 \times 1010×10 的方格地图,图上一共有 1010 个宝藏。有些方格地形太凶险,不能进入。整个图只有一个地方可以出入,即是入口也是出口。蒜头君是一个贪心的人,他规划要获得所有宝藏以后才从出口离开。藏宝图上从一个方格到相邻的上下左右的方格需要 11 天的时间,蒜头君从入口出发,找到所有宝藏以后,回到出口,最少需要多少天。48...

小女不才 497

手势控制 Python !Leap Motion Python 开发教程 (二)

手势控制 Python !Leap Motion Python 开发教程 (二) 现在进入正题,我来给大家总结一下我在使用 Leap Motion 开发过程中的经验以及学到的东西,其中我会概括以及翻译官方给出的注释,为了让这些注释更加通俗易懂,让大家更好理解。 回顾 在上一篇文章中我们讲了如何配置 Leap Motion 的 Python 2.7 的开发环境,如果您还没有配置好您的开发环境,可以参...

成畅的博客 3193

DRV8870电机驱动芯片原理与嵌入式多平台驱动开发

H桥电机驱动芯片是直流电机控制的核心硬件模块,其通过双MOSFET拓扑实现方向与速度的精确调控。工作原理基于电荷泵自举驱动、集成电流检测及多重硬件保护机制,技术价值体现在高集成度、宽压适配(4.5V–45V)与强鲁棒性。典型应用场景涵盖智能机器人执行器、工业自动化设备及电池供电移动终端。本文围绕DRV8870这一主流驱动芯片,深入解析其PH/EN与Dual PWM双控制模式、nFAULT故障响应机制,并结合Arduino/ESP32/STM32三大平台,提供可复用的跨MCU驱动库设计范式与FreeRTOS实

weixin_32251525的博客 656

藏宝图

蒜头君得到一张藏宝图。藏宝图是一个 10 \times 1010×10的方格地图,图上一共有 1010 个宝藏。有些方格地形太凶险,不能进入。整个图只有一个地方可以出入,即是入口也是出口。蒜头君是一个贪心的人,他规划要获得所有宝藏以后才从出口离开。藏宝图上从一个方格到相邻的上下左右的方格需要 11 天的时间,蒜头君从入口出发,找到所有宝藏以后,回到出口,最少需要多少天。这道题的思路是,把每个宝藏的...

happen的博客 577

python画弗里德曼(Friedman) 检验和秩和检验(Nemenyi)检验图

python画弗里德曼(Friedman) 检验和秩和检验(Nemenyi)检验图 画好后效果图 实现代码如下 import matplotlib.pyplot as plt #算法平均排名 _alg_=[1.405,2.643,2.786,2.167] y=[1,2,3,4]#alg1,alg2,alg3,alg4 通过Nemenyi测试计算得到的临界值CD CD=1.024 h_CD=CD/2 plt.figure(figsize=(10,6)) plt.scatter(_alg_,y,s=10

大模型天花板 4464

网易 藏宝图

牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t,根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序列。注意,子序列不要求在原字符串中是连续的,例如串 abc,它的子序列就有 {空串, a, b, c, ab, ac, bc, abc} 8 种。 输入描述: 每个输入包含一个测试用例。每个测试用例包含两行长度不超过

不可不戒 1241

Clang Static Analyzer 使用教程:本地 + CMake + GitHub Actions 自动静态分析实战

本文介绍了ClangStaticAnalyzer静态代码分析工具的使用方法。该工具基于Clang/LLVM,可检测C/C++代码中的内存泄漏、空指针等常见错误。主要内容包括:安装指南(Ubuntu/macOS/Windows)、命令行使用方法、CMake项目集成方案、GitHub Actions自动化分析配置,以及HTML报告生成与查看。文章还提供了官方资源链接,帮助开发者系统掌握从本地调试到持续集成的完整静态分析工作流,提升代码质量保障能力。适用于需要在开发过程中实施静态分析的C/C++项目。

u014358031的博客 2157

微信小程序——01开发前的准备和开发工具

微信小程序——01开发前的准备和开发工具

总裁余(余登武)博客 1万+

2018 蓝桥杯省赛 B 组模拟赛(五)

计蒜客蓝桥杯省赛 B 组模拟赛网址  https://www.jisuanke.com/contest/1215A题:矩阵求和给你一个从 n×n 的矩阵,里面填充 11 到 n×n 。例如当 nn 等于 33 的时候,填充的矩阵如下。1 2 34 5 67 8 9现在我们把矩阵中的每条边的中点连起来,这样形成了一个新的矩形,请你计算一下这个新的矩形的覆盖的数字的和。比如,n = 3n=3 的时候矩...

nsu_zser的博客 597

【Bug已解决】NCCL timeout for validation 解决方案

训练用多卡 DDP / FSDP 正常,但一到或者进程直接 hang 在 eval 的某个集合通信上。最迷惑的是:训练阶段(有集合通信)完全正常,偏偏 eval 阶段(看起来更轻量)超时。因为 eval 阶段某些 rank 没参与 collective,导致参与的那部分 rank 永远等不到同伴。

一键难忘的博客 142

计蒜客 蓝桥杯模拟B组(五)藏宝图

蒜头君得到一张藏宝图。藏宝图是一个10*10 的方格地图,图上一共有10个宝藏。有些方格地形太凶险,不能进入。 整个图只有一个地方可以出入,即是入口也是出口。蒜头君是一个贪心的人,他规划要获得所有宝藏以后才从出口离开。藏宝图上从一个方格到相邻的上下左右的方格需要 1天的时间,蒜头君从入口出发,找到所有宝藏以后,回到出口,最少需要多少天 答案:48天。...

放纵不羁爱自由 340

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【计蒜客】2018 蓝桥杯省赛 B 组模拟赛(五) ---- 结果填空:藏宝图

思路: 自己还是做题做的少呀,一位一次BFS就够了,没有那么简单。这个题目要求出每两个宝藏之间(把起点也算进去)的最短距离, 共计 11 个点,然后枚举,找到最短的一条回路(环)。这样子其实就是把这个藏宝图上的藏宝点和起点看成一张新的地图,构建成了无向图。这样子就很容易得到结果了。 感谢@zudikn 超霸的指点~ AC代码: #include &lt;iostream&gt; #...

WangMeow --- ᶘ ᵒᴥᵒᶅ ฅ^•ﻌ•^ฅ 353

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

2018 蓝桥杯省赛 B 组模拟赛(五) F. 结果填空:藏宝图

蒜头君得到一张藏宝图。藏宝图是一个 10 \times 1010×10 的方格地图,图上一共有 1010 个宝藏。有些方格地形太凶险,不能进入。 整个图只有一个地方可以出入,即是入口也是出口。蒜头君是一个贪心的人,他规划要获得所有宝藏以后才从出口离开。 藏宝图上从一个方格到相邻的上下左右的方格需要 11 天的时间,蒜头君从入口出发,找到所有宝藏以后,回到出口,最少需要多少天

Become hunger become strong 694

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

2018 蓝桥杯省赛 B 组模拟赛(五) F. 结果填空:藏宝图

蒜头君得到一张藏宝图。藏宝图是一个 10 \times 1010×10 的方格地图,图上一共有 1010 个宝藏。有些方格地形太凶险,不能进入。整个图只有一个地方可以出入,即是入口也是出口。蒜头君是一个贪心的人,他规划要获得所有宝藏以后才从出口离开。藏宝图上从一个方格到相邻的上下左右的方格需要 11 天的时间,蒜头君从入口出发,找到所有宝藏以后,回到出口,最少需要多少天。跑了1分钟左右。才出来48...

JUST CODE IT 1026

计蒜客蓝桥杯模拟五---藏宝图

#include&lt;iostream&gt; #include&lt;queue&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; using namespace std; struct node { int id,x,y,len; }; struct node N[15]; int dis[15][15]; int dir...

hg_zhh 557

计蒜客蓝桥c语言答案,计蒜客:2018 蓝桥杯省赛 B 组模拟赛(五)题目题解

A.结果填空:矩阵求和#include #include using namespace std;const int n = 101;long long a[110][110];int main() {long long cnt = 1;for(int i = 1; i <= n; i++) {for(int j = 1; j <= n; j++) {a[i][j] = cnt++;...

weixin_39603573的博客 248

蓝桥杯省赛 B 组模拟赛 结果填空:藏宝图【BFS状态压缩,水】

蒜头君得到一张藏宝图。藏宝图是一个10 \times 1010×10的方格地图,图上一共有1010个宝藏。有些方格地形太凶险,不能进入。 整个图只有一个地方可以出入,即是入口也是出口。蒜头君是一个贪心的人,他规划要获得所有宝藏以后才从出口离开。 藏宝图上从一个方格到相邻的上下左右的方格需要11天的时间,蒜头君从入口出发,找到所有宝藏以后,回到出口,最少需要多少天。 BF...

weixin_30537451的博客 111

蓝桥杯国赛B组C++真题深度解析:从算法基础到竞赛策略

算法竞赛是检验编程与问题解决能力的重要途径,其核心在于对数据结构与算法的深刻理解和灵活运用。动态规划、深度优先搜索(DFS)等经典算法构成了解决复杂问题的基石,通过状态设计和剪枝优化,能够高效处理大规模数据。掌握这些技术不仅能提升代码效率,更能在如蓝桥杯等权威赛事中构建竞争优势。本文以2017年第八届蓝桥杯国赛B组C++真题为具体载体,深入剖析其中涉及的动态规划状态设计、DFS/BFS搜索与剪枝等核心考点,并结合整数溢出、数组越界等常见“坑点”,提供从真题拆解到备赛策略的完整实战指南,帮助备赛者精准扫描知识

weixin_30617737的博客 403

蓝桥杯Python组真题精讲:从“货物摆放”案例掌握算法优化与赛前冲刺策略

算法竞赛的核心在于将复杂问题转化为可计算的模型,并通过数据结构与算法优化实现高效求解。其原理在于利用计算机科学的理论基础,如时间复杂度分析与空间复杂度权衡,将现实约束映射为离散数学问题。掌握这一能力的技术价值在于,不仅能解决竞赛题目,更是培养解决实际工程中大规模数据处理与优化问题的关键思维。典型的应用场景包括数据分析、路径规划、资源分配等。本文以蓝桥杯Python组真题中的“货物摆放”问题为例,深入剖析如何通过因数分解和集合查找(set)进行优化,将不可行的暴力枚举转化为高效解法,并融入大数运算与输入输出效

weixin_30788619的博客 376

计蒜客 2018 蓝桥杯省赛 B 组模拟赛(五)

A. 结果填空:矩阵求和(3分)给你一个n×n的矩阵,里面填充 1 到 n×n 。例如当 n 等于 3 的时候,填充的矩阵如下。1 2 3 4 5 6 7 8 9现在我们把矩阵中的每条边的中点连起来,这样形成了一个新的矩形,请你计算一下这个新的矩形的覆盖的数字的和。比如,n = 3 的时候矩形覆盖的数字如下。       24     5     6       8那么当 n 等于 101 的时候...

hopyGreat的博客 635

计蒜客:2018 蓝桥杯省赛 B 组模拟赛(五)题目题解

A.结果填空:矩阵求和#include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; const int n = 101; long long a[110][110]; int main() { long long cnt = 1; for(int i = 1; i &lt;= n; i++) {...

温姑娘的博客 3788
上一篇: 蚂蚁感冒(蓝桥杯--思维好题)
下一篇: L1-049. 天梯赛座位分配
也道长
博客等级 码龄9年 11粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值