news 2026/5/21 10:22:00

【双端队列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/5/1 8:48:56

Gemini3ProImage(nano banana 2 )异步调用接口(API)生成图片

什么是 Gemini3ProImage"Nano Banana 2"&#xff1f;&#x1f9e0; 这不是一次简单的版本迭代&#xff0c;而是架构的重构。 Gemini 3 Pro Image 搭载了最新的 Nano Banana 2 核心。Nano Banana 2 引入了革命性的**“思维链&#xff08;Thinking Process&#xff09…

作者头像 李华
网站建设 2026/5/9 1:09:29

Java计算机毕设之基于springboo的小区车辆管理系统车位信息、临时车辆信息、IC卡管理(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/5/4 13:30:39

【Vue知识点总结】Vue 路由中的 hidden: true:路由控制技巧

一、什么是 hidden: true? 在 Vue Router 中, hidden: true 是一个自定义的元信息字段(meta field),它本身不是 Vue Router 原生的配置项,而是开发团队约定俗成的一种用法。通常我们会这样配置路由: {path: /login,component: Login,meta: {hidden: true // 这里的 hi…

作者头像 李华
网站建设 2026/5/14 8:47:34

系统思考:以客户为中心

周一的学习实验室&#xff0c;有小伙伴提到“控场力”。我当下的判断是&#xff1a;控场本身并不是能力&#xff0c;而是系统良性运转后的外显结果。 顺着这个判断继续拆&#xff0c;我们发现一个关键变量反复出现——是否真正以学员为中心、以客户为中心。 这让我想到企业里那…

作者头像 李华
网站建设 2026/5/6 17:44:11

计算机Java毕设实战-基于小程序的上班企业考勤签到签退下班打卡系统设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/5/1 8:40:02

书单推荐之豆包高效学习:AI时代的教育破局指南

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 书单推荐之豆包高效学习&#xff1a;AI时代的教育破局指南 为什么这本书值得每个家庭拥有&#x…

作者头像 李华