第一个bfs题目 hdu1175连连看

文献阅读:SAR像素偏移的性能改进An Improvement of the Performance of SAR Offset Tracking Approach 像素偏移追踪POT文献阅读 阅读详情

 

#include <iostream>

#include <string.h>

#include <queue>

using namespace std;

 

#define MAXN 1005

 

//用于保存点信息的结构

typedef struct _node

{

int x, y; //坐标信息

unsigned short change; //转弯次数信息

int dic; //点的方向信息

}node;

int cmap[MAXN][MAXN]; //保存图信息

int vistied[MAXN][MAXN]; //记录点是否已访问过

int flag; //标识点是否可消除

int dir[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}}; //用于保存4个方向的数组

int m, n;

int xs, ys, xe, ye;

int legal(int x, int y); //判断点是否合法

void bfs(int sx, int sy); //广搜算法

 

int main(void)

{

    int i, j, q;

 

    while (scanf("%d %d", &m, &n) && (m + n))

    {

        memset(cmap, -1, sizeof(cmap));

//构图

        for (i=1; i<=m; i++)

        {

            for (j=1; j<=n; j++)

            {

                scanf("%d", &cmap[i][j]);

            }

        }

 

        scanf("%d", &q);

 

        while (q--)

        {

            flag = 0;

            memset(vistied, 0, sizeof(vistied));

            scanf("%d%d%d%d", &xs, &ys, &xe, &ye);

//如果所选点值或起始点和结尾点为0则表示无法消除

            if (cmap[xs][ys] != cmap[xe][ye] || cmap[xs][ys] == 0 || cmap[xe][ye] == 0)

            {

                printf("NO/n");

            }

            else

            {

                bfs(xs, ys);

 

                if (flag)

                {

                    printf("YES/n");

                }

                else

                {

                    printf("NO/n");

                }

            }

        }

 

    }

    return 0;

}

 

int legal(int x, int y)

{

    if (x<0 || x>m || y<0 || y>n)

    {

        return 0;

    }

 

    return 1;

}

 

//广搜算法

void bfs(int sx, int sy)

{

queue<node> que; //用于保存合法点的队列

node p, t;

    int i;

p.x = sx; //初始化节点

p.y = sy;

p.change = 0;

p.dic = -1;

t.dic = -1;

t.change = 0;

    vistied[p.x][p.y] = 1;

que.push(p); //将起始节点入队

 

while (!que.empty())

{

p = que.front();

que.pop();

//出队节点如果和结束节点位置相同则表示可以删除,计算结束

if (p.x == xe && p.y == ye)

{

flag = 1;

break;

}

for (i=0; i<4; i++)

{

t.x = p.x + dir[i][0];

t.y = p.y + dir[i][1];

//用于改变节点转弯次数信息和方向信息

if (p.dic != -1)

{

if (p.dic != i)

{

t.change = p.change + 1;

}

else

{

t.change = p.change;

}

}

else

{

t.change = 0;

}

 

t.dic = i;

//转弯次数小于等于2且点合法且未被访问过,点值为0或者该点是结束点则符合条件入队

if (t.change <=2 && legal(t.x, t.y) && !vistied[t.x][t.y] 

&& (cmap[t.x][t.y] == 0 || (t.x == xe && t.y == ye)))

{

que.push(t);

vistied[t.x][t.y] = 1;

}

}

}

 

}

 

如何合法抓取TikTok视频信息和评论:完整Python爬虫教程 尽管TikTok没有开放的公共API来直接抓取视频内容和评论,开发者仍然可以通过合法的方式使用第三方API工具来获取公开数据。无论使用什么工具,都应当严格遵守TikTok的使用条款和当地的隐私法规,确保数据抓取行为符合规定。通过本文介绍的TikTok-Api库和Python技术,你可以合法地抓取公开的视频信息和评论,并进行数据存储与分析。使用这些技术时,务必确保抓取行为不会侵犯用户隐私,并遵守平台的API使用规定。 阅读详情

相关推荐

Apollo学习笔记(4)坐标系

百度Apollo项目用到了多种坐标系,其中帮助文档提及的坐标系包括: 全球地理坐标系(The Global Geographic coordinate system ) 局部坐标系—东-北-天坐标(The Local Frame – East-North-Up,ENU) 车身坐标系—右-前-天坐标(The Vehicle Frame —Right-Forward-Up,RFU) 车身坐标系—前-左-天坐标(The Vehicle Frame —Front-Left-Up,FLU) 还有一种Frenet坐标

qq_24649627的博客 5798

【刷题】BFS题目精选

BFS刷题

qq_53893431的博客 1544

CSAPP performance lab

CSAPP 深入理解计算机系统的performance Lab

weixin_46091531的博客 1253

【刷题日记】BFS 经典题目

广度优先搜索(Breadth First Search)简称广搜或者 BFS,概念相对于深度优先搜索。深度优先搜索广度优先搜索可以看到深度优先搜索和广度优先搜索在二叉树的遍历上分别体现为前序遍历和层序遍历。广度优先搜索的思路首先,将开始遍历的结点加入队列,遍历这个结点后,将其孩子结点入队。接着,按照队列的顺序将结点出队,遍历并将其孩子结点入队。重复2过程,直到队列为空。广度优先搜索的优势没有过多的堆栈消耗,耗时少。在求最大或者最小问题时比较好用。

白晨的博客 3392

Altair HyperWorks 2022.3.0 Suite下载

Altair HyperWorks开发团队提供了新的一流技术,以设计和优化高性能、高效和创新的产品,并发布了HyperWorks 2021.2套件。与所有新版本一样,这个版本包含了新特性、增强功能,并修复了前一个版本中用户报告的各种问题,提供了总体上更稳定的体验。链接: https://pan.baidu.com/s/1rYietmQLQUboHiJzYoE9WQ?pwd=m9yh 提取码: m9yh 复制这段内容后打开百度网盘手机App,操作更方便哦。

weixin_48469365的博客 2127

QMT vs Ptrade:量化交易新手如何根据需求选择券商系统(附实战案例)

本文对比了QMT和Ptrade两大券商量化交易系统的核心差异,帮助量化交易新手根据需求选择合适的平台。QMT适合技术面策略开发,执行效率高;Ptrade则提供全面的财务数据和复杂策略支持。通过实战案例,展示了如何结合两平台优势实现高效量化交易。

weixin_42683394的博客 527

【C++】BFS类型题目总结

文章目录1、墙与门2、图像渲染3、01 矩阵4、岛屿数量 1、墙与门 题目连接 题目描述: 解题思路: 核心在于用队列把只存门和空房间的位置,把墙排除在外。刚好门的值为0,这样拿出队列里的每一个元素,搜索它的上下左右位置有没有空房间,有的话更新空房间的最近门距离就是该元素的值+1,之后把空房间的位置也入队列,继续拿出队列的下一个元素去更新它周围空房间的值。 遍历数组,把所有门的下标入队列。 依次拿出队列的元素,检查该元素的上下左右位置是否有空房间,有的话空房间的值改为:刚从队列拿出元素的值 + 1,

m0_51064412的博客 1940

论文翻译:2024 High-Confidence Computing A survey on large language model (LLM) security and privacy: The

大型语言模型(LLMs),如ChatGPT和Bard,已经彻底改变了自然语言理解和生成。它们具有深度语言理解能力、类似人类的文本生成能力、上下文意识和强大的问题解决技能,使它们在各个领域(例如搜索引擎、客户支持、翻译)中变得不可或缺。同时,LLMs也在安全领域获得了关注,揭示了安全漏洞并展示了它们在安全相关任务中的潜力。本文探讨了LLMs与安全性和隐私的交集。具体来说,我们研究了LLMs如何积极影响安全性和隐私,与它们使用相关的潜在风险和威胁,以及LLMs内部的固有漏洞。

CSPhD-winston的博客 1722

bfs常见题型总结

文章目录(一)bfs模板题(二)Flood Fill(三)最短路模型(四)多源bfs (一)bfs模板题 题目描述 给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。 最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。 请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。 数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。 输入格式

Jefferson__的博客 1401

lammps教程:聚合物压缩,避免“bond atoms missing”

如果使用ms建模,聚合物的链会伸出到盒子外面,在导出data文件后,盒子外面的原子被周期性算法折叠进盒子对面,这就造成了边界附近的bond原子可能被分布到了盒子的两侧。并且,这个data文件不能使用npt系综进行压缩,npt系综必须使用周期性边界,在压缩时,bond原子同样会移动到对面的边界。所以,最好的解决办法是使用一个反射墙墙进行压缩,设置一个反射墙墙既可以实现压缩效果,也可以组织原子跨越box边界移动到对面。解决这个问题的原则只有一个:导出data时确保所有的bond原子没有跨越边界。

lammps_jiayou的博客 3819

详解【计算机类&面试真题】军队文职考试——第7期:C盘格式化需要注意什么?| 两台笔记本连起来后ping不同,可能存在哪些问题?| 模拟信号到数字信号是如何转化的?| 计算机由哪些部件组成?

这是我分享的系列面试知识——军队文职(计算机类)面试真题详解(第7期)。本期分享:两台笔记本连起来后ping不同,你觉得可能存在哪些问题?模拟信号到数字信号是如何转化的?谈一谈计算机由哪些部件组成?如何加强计算机网络安全管理?若通过域名无法访问,而通过IP地址能访问。这是怎么回事?你将如何解决?谈一谈C盘格式化需要注意什么?开放类题目:如果应聘的岗位和你想的差距很远,你怎么办?

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 1922

BFS算法题

正常来说,在我们会了单源BFS的使用后,面对多个起点到一个终点的最短路问题也就是多源BFS,我们最先想到的就是暴力做法,也就是将多个起点分成一份份一个起点到一个终点的单源BFS问题,这样我们每个起点到终点的最短路都求出来再找最小值即可,但这种暴力几乎是一定超时的,最差时间复杂度都达到ON^3。用数组表示所连接的节点。这时我们就发现,如果多个起点一块进行BFS搜索,重复的路程不再经过,这时不仅得出的答案正确,而且时间复杂度大大降低,这也就是多源BFS的核心思路,多个起点同时用单源BFS的方法去找最短路。

2301_80224556的博客 1699

pi-coding-agent 完整详解

pi-coding-agent是一个由Mario Zechner开发的专业AI编程助手,基于Node.js和TypeScript构建。核心功能包括:1)多级思考模式(ThinkingLevel),从none到ultra控制推理深度;2)对话压缩(compaction)管理长对话记忆;3)WebSocket实时通信支持流式交互。该智能体支持代码生成、调试、重构等专业编程任务,采用AI Agent架构,具备工具调用和多轮记忆能力。项目结构通常包含server、agent、config等模块,可通过二次开发扩展功

大坡3D软件开发 2426

【HDU】1175 连连看(BFS + 剪枝)

【HDU】1175 连连看(BFS + 剪枝)

forever_bryant的博客 1141

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

STM32F407中文手册

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

hdu1175 连连看

题意:找到两个相同的数字 拐弯个数不能超过2 还有一些限制条件在这里就不在赘述了 思路: 开始我用DFS 结果超时 下次想问题时一定要确定用什么方法去解决问题 总体方针没有正确后面再好也会错 用BFS找 过程中要注意用visited[][]标记每个点的拐弯数 如果遍历到它时 本身拐弯数小于等于该点的 则可以遍历该 点;其他方法都比较基本不在赘述

dashuxiaoai52613的专栏 2172

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

hdu 1175 连连看 BFS

题目  http://acm.hdu.edu.cn/showproblem.php?pid=1175 这是一个简单的搜索问题  BFS   刚开始觉得是简单但是还是不会做哦 ,很纠结。。。但终于看别人报告出来的。。。 当时看别人报告的时候一直纠结一个问题  就是没想明白到底为什么。。。呵呵。。。 if(s.di==-1){s.di=i;s.num=0;} else

aibianchendewo的专栏 543

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

HDU-1175 连连看

HDU 1175 连连看 “连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这...

你呢的博客 1036

HDU 1175 连连看+ HDU 1728 逃离迷宫

HDU 1016连连看 链接:

笙箫默 1054

hdu1175 连连看dfs

传送门:hdu1175 其实这个题深搜广搜都可以,但是广搜本来就用的不熟练,再加上还只能转两次弯,根本就不知道该怎么写入队条件,于是果断选择了深搜。。这里有一个重要剪枝是当转弯次数为2的时候先不要进行下一次dfs,直接判断目标点在不在前进方向中就行了,不剪的话铁定超时。。 #include #include #include int n,m,x1,x2,y1,y2,flag=0; int

WA是一笔财富 900

HDU - 1175 连连看 【DFS】【BFS】

题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1175 思路 这种题一想到就用搜索, 但是内存是32m 用 bfs 会不会MLE 没错 第一次 BFS的时候 MLE了 但是加入一些剪枝 就可以过 0.先判断两个位置的棋子是否存在并且相同 1.如果转弯次数 > 2 就不用搜下去 2.如...

dianxi0949的博客 109

HDU - 1175 连连看(BFS 扩展顺序不同导致WA ???)

HDU - 1175 连连看 题目 给一个迷宫,起点和终点,问是否能从起点走到终点,且转向次数不超过 2 次。 分析 题目并不难,很容易想到 bfs,不过要有很多细节要注意。 定义 bfs 的每次的状态包括当前位置,当前已转向次数,来时的方向。 可以先将终点位置值设为 0 ,即通路,便于写代码。但是 bfs之后要改回去。 后面判断转向就用要去的方向与来时的方向一样不一样。 注意细节。 代码 #in...

Stormjing的博客 259

hdu 1175 连连看

连连看 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17604    Accepted Submission(s): 4571 Problem Description “连连看”相信很多人都玩过。没玩过也没关系,下

小小码农 763

hdu1175 连连看(bfs求拐弯次数)

http://acm.hdu.edu.cn/showproblem.php?pid=1175 题意:中文题不解释。 思路:核心就和hdu1728一样,思路请看我的分析。有了上一题的基础,这题就是割草小游戏了,1A~ 好久木有1A了,感动 #include #include #include #include #include #include #includ

Iguodala的博客 564

【DFS】hdu 1175 连连看 stack

http://acm.hdu.edu.cn/showproblem.php?pid=1175 连连看 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 16171    Accepted Submission(s): 4172

Song 756

HDU 1175 连连看(BFS或DFS)

连连看               Time Limit: 20000/10000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)                      Total Submission(s): 12814Accepted Submission(s): 3351 Prob...

MengDeMao1234的博客 261

HDU 1175 连连看(BFS或DFS)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1175 思路:BFS或者DFS,wrong了,有时间改 错误代码: #include #include #include #include #include #include #include #include #include #include #include cons

Java识堂,一个有干货的微信公众号 512
上一篇: 这是spfa 邻接表实现的版本
下一篇: 心血来潮的复习了下汇编的寻址方式!
WowBanyan
博客等级 码龄18年 5粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值