news 2026/6/10 11:31:01

【双端队列bfs】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【双端队列bfs】

【双端队列bfs】

笔记而已
推荐好文
推荐视频
双端队列bfs是解决0-1bfs最常用的一种手段
0-1bfs就是边值只有0或1两种情况时用的bfs
一般是求起点到终点所用边值总值最小为多少
用例题更好说明
1.拖拉机

这里,在通过没有干草块的位置时所用边值为零
通过有干草块位置时边值为1
要求需要移除最少的数量
那么一定是能不移就不移最好,实在需要移再移
换句话说,就是优先走没有干草块的位置,当走完没有干草块的位置时再走有干草块的位置

此时可以用双端队列deque来实现
将没有干草块的压入队头,有干草块的压入队尾
每次只用队头元素,就能实现先走边值为0,再走边值为1

不同于朴素bfs
0-1bfs不需要判重数组,一个点可能多次经过
但是,只有在值更小时才需要更新

代码

#include<bits/stdc++.h>//#define int long longusingnamespacestd;boolg[1015][1015];intdx[]={1,-1,0,0};intdy[]={0,0,1,-1};intdis[1015][1015];structnode{intx,y;};deque<node>dq;intn,x,y;voidbfs(intx,inty){dq.push_front((node){x,y});while(dq.size()){intax=dq.front().x,ay=dq.front().y;dq.pop_front();for(inti=0;i<4;i++){intsx=ax+dx[i],sy=ay+dy[i];if(sx>=0&&sx<=1010&&sy>=0&&sy<=1010){if(dis[sx][sy]<=dis[ax][ay]+g[sx][sy])continue;//只有值更小时,才需要更新if(!g[sx][sy])dq.push_front((node){sx,sy}),dis[sx][sy]=dis[ax][ay];if(g[sx][sy])dq.push_back((node){sx,sy}),dis[sx][sy]=dis[ax][ay]+1;if(!sx&&!sy)return;}}}}voidsolve(){cin>>n>>x>>y;while(n--){inta,b;cin>>a>>b;g[a][b]=1;}memset(dis,1e6,sizeof(dis));dis[x][y]=0;bfs(x,y);cout<<dis[0][0]<<endl;}signedmain(){intt=1;//cin>>t;while(t--){solve();}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 10:57:03

如何使用 Markdown 和思维导图可视化你的想法

本文转载自&#xff1a;AI225在线工具箱&#xff0c;原文链接&#xff1a;https://tools.ai225.com/articles/visualize-ideas-with-markdown-mindmap/ 在日常工作和学习中&#xff0c;我们经常需要整理复杂的想法或规划项目。Markdown 擅长快速记录线性的文字内容&#xff0c…

作者头像 李华
网站建设 2026/6/9 12:38:14

AI模型训练:数据获取与增强

数据是训练一切模型的基础&#xff0c;因此如何获取数据就成了一个先行条件。 1.常见的机器学习数据集 &#xff08;1&#xff09;MNIST 属于计算机视觉领域&#xff0c;手写数字灰度图&#xff0c;包含有六万的训练集以及一万的测试集。 &#xff08;2&#xff09;ImageNet…

作者头像 李华
网站建设 2026/6/10 10:56:24

Windows下快速安装Python GDAL指南

在Windows系统下安装GDAL包&#xff08;适用于Python 3.7版本&#xff09;的完整指南&#xff1a; 步骤1&#xff1a;确认环境信息 打开命令提示符&#xff08;cmd&#xff09;执行&#xff1a; python -c "import platform; print(platform.architecture()[0], platfo…

作者头像 李华
网站建设 2026/6/10 10:56:03

YOLO26涨点改进 | 首发全网创新、主干改进篇 | AAAI 2026 | PartialNet 主干让 YOLO26 更加强大!引入部分通道机制 和 部分注意力卷积,全方面提升了模型的性能

一、本文介绍 ⭐本文介绍将 PartialNet 改进 YOLO26 的主干网络,通过引入 部分通道机制(PCM) 和 部分注意力卷积(PATConv),显著提升了计算效率和推理速度,同时保持了较高的检测精度。PartialNet 通过拆分特征图通道并对不同部分应用不同的操作,减少了计算量和内存占用…

作者头像 李华
网站建设 2026/5/28 15:27:23

YOLO26涨点改进 | 全网独家创新/Conv篇 | AAAI 2025 | PConv新型风车形卷积和SPConv二次创新改进(移动风车卷积,使它充分活跃起来),增强特征提取,扩大感受野

一、本文介绍 本文给大家介绍一种PConv新型风车形卷积优化YOLO26模型!含二次创新SPConv移动风车卷积。针对红外小目标检测中标准卷积忽略像素高斯分布的问题,本文提出了一种新型风车形卷积(PConv),它通过不对称填充和组卷积有效地扩展了感受野并增强了底层特征提取能力。…

作者头像 李华