当前位置: 首页 > news >正文

【机器人移动】暴力dfs和层次遍历bfs

暴力,深搜每一种可能,使用

struct vertice{
int x,y;
bool operator<(onst vertice& other)const{if(x != other.x)return x < other.x;return y < other.y;}
}
vertice v={x,y};

保存顶点,使用map:

map<vertice,int> mp;
vertice v = {x,y};
mp.insert({v,1});

来插入键值;
使用mp.count(v)来判断是否已经有该点被访问过;

然后dfs深搜遍历;

正确做法:bfs广搜;
并且,使用dx,dy来存入移动的方向,减少代码量;

其中,关键是我们使用step存放限制步数,用于停止运行;
因此bfs队列的结构是queue<pair<vertice,int>> q;分别是点和step;
代码如下:

#include<iostream>
#include<map>
#include<queue>
using namespace std;
int n,k;
int x0,y0;
struct vertice{int x,y;bool operator<(const vertice& other) const {if (x != other.x) return x < other.x;return y < other.y;}
};//点集
map<vertice,int> mp;bool isValid(int x,int y){return (1<=x&&x<=n)&&(1<=y&&y<=n);
}
int dx[8] = {-1,-2,-2,-1,1,2,2,1};
int dy[8] = {2,1,-1,-2,-2,-1,1,2};int main(){cin >> n >> k;cin >>x0 >>y0;queue<pair<vertice,int>> q;vertice v = {x0,y0};mp.insert({v,1});q.push({v,0});while(!q.empty()){auto [cur,step] = q.front();//也可以写成:pair<vertice,int> temp = q.front();//vertice cur = temp.first;//int step = temp.second;//写成auto [cur,step] = q.front();属于简化的写了;q.pop();if(step == k)continue;step++;for(int i = 0;i < 8;i++){if(isValid(cur.x+dx[i],cur.y+dy[i])){vertice v = {cur.x+dx[i],cur.y+dy[i]};if(mp.count(v)==0){mp.insert({v,1});q.push({v,step});}}}}cout << mp.size()<<endl;
}
http://www.jsqmd.com/news/51876/

相关文章:

  • ThingsBoard部件数据结构解析 - 教程
  • 【LVGL】表格部件
  • 【前端从0到1实战】第9篇:构建“无限滚动列表” (Infinite Scroll)
  • 2025液冷超充厂家推荐榜:全液冷/浸没式液冷/大功率/电动汽车/新能源车/超充源头厂家,中碳创新引领技术革命,快速补能成新标杆
  • 2025 西安网站建设公司推荐 3 家口碑好的网站制作公司
  • 2025济南画室培训推荐榜:山东济南艺考画室/美术艺考培训/画室机构综合参考,济南宏艺画室用专业护航艺术梦想!
  • HCL AppScan Standard 10.10 发布,新增功能简介
  • Omnissa App Volumes 4, version 2509 - 实时应用程序交付系统
  • Omnissa Dynamic Environment Manager 2509 - 个性化动态 Windows 桌面环境管理
  • 2025 年靠谱的西安外贸网站建站行业内最具实力的三家公司
  • GeoJSON代码示例
  • 固废回收AI应用场景
  • 2025年下半年岩心钻机/坑道钻机/勘探钻机/探水钻机/履带钻机厂家综合推荐指南:十大优质厂商深度解析
  • 2025年ffu厂家推荐榜:ffu风机ffu龙骨FFU风机过滤单元公司高效过滤与智能节能核心实力!
  • aws 导入导出资源脚本
  • 详细介绍:在 Ubuntu 系统中利用 conda 创建虚拟环境安装 sglang 大模型引擎的完整步骤、版本查看方法、启动指令及验证方式
  • 2025年11月安徽道路注浆厂家电话推荐:空鼓公路路基地基厂房地坪注浆公司与工程应用口碑!
  • 【前端从0到1实战】第8篇:构建“拖拽看板” (Drag Drop Kanban)
  • iac工具-Terraform
  • week2--RE--刷题记录
  • API自动化与单元测试
  • 2025年11月婚纱摄影哪家好推荐:成都西安北京天津太原宁波婚纱摄影推荐拍摄核心优势!
  • netcore 项目健康检查(healthcheck)
  • 2025年市场上四川住人集装箱厂家最新用户好评榜
  • 2025年11月干燥机厂家推荐榜:闪蒸喷雾桨叶流化床干燥机厂家行业适配能力!
  • 2025年质量好的四川轻集料混凝土热门厂家排行榜单
  • 2025年市面上四川净化板厂家最新权威推荐排行榜
  • 2025年市面上成都房屋拆除建渣清运最新权威推荐排行榜
  • RAG 分块策略:从原理到实战优化,喂饭级教程不允许你踩坑
  • 2025 年试验箱厂家终极推荐!六大特色厂商破解采购难题,技术与服务双优