新闻详情

新闻详情

首页 / 资讯中心 / 详情

牛客每日一题 小红的皇后(bfs)

发布时间:2026/9/6 3:34:52来源:尧图网络
牛客每日一题 小红的皇后(bfs)
题目链接小红的皇后_牛客题霸_牛客网题目大意在一个n*m的网格上有若干障碍物其中有三种走法每种算一步∙ 向右(x,y)→(x,yk)∙ 向下(x,y)→(xk,y)∙ 向右下(x,y)→(xk,yk)其中 k≥1并且移动路径上不得出现障碍物。求从11到n,m)的最小移动步数如果不能到达输出-1题目思路由于让我们求最小移动步数并且每一步移动代价相同即最短路问题我们可以用bfs求解.朴素 BFS 的问题如果皇后每走一步都枚举所有可能的k1,2,3,...最坏情况复杂度 O(nm × max(n,m))会超时。优化思路利用 BFS 的层次性每个格子第一次被访问时步数一定是最少的。所以每个格子只需要入队一次从当前格子出发沿三个方向一直走到头途中遇到未访问的格子就入队遇到更优解或障碍物就停止此时对于每走一步都枚举所有可能的k1,2,3,...降到常数级别代码如下#include bits/stdc.h using namespace std; using in128 __int128_t; #define int long long bool in_bound(int x,int y,int n,int m){ return 1 x x n 1 y y m; } int bfs(int n,int m,vectorstringgrid){ vectorvectorint dist(n 1, vectorint(m 1, -1)); queuepairint, int q; q.push({1,1}); dist[1][1] 0; int dx[] {0, 1, 1}; int dy[] {1, 0, 1}; pairint, int u; while(!q.empty()){ u q.front(); q.pop(); int x u.first; int y u.second; int current_dist dist[x][y]; if(xnym){ return current_dist; } for (int dir 0; dir 3; dir) { int k 1; while(true){ int nx x dx[dir] * k; int ny y dy[dir] * k; if(!in_bound(nx,ny,n,m)||grid[nx][ny]!.){ break; } if(dist[nx][ny]-1){ dist[nx][ny] current_dist 1; q.push({nx, ny}); }else if(dist[nx][ny]current_dist) { // 如果已经有更优解提前终止 break; } k; } } } return -1; } void solve() { int n, m; cin n m; vectorstring grid(n 1); for (int i 1; i n;i){ cin grid[i]; grid[i] grid[i]; } cout bfs(n, m, grid) endl; } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int T 1; //cin T; while (T--) { solve(); } return 0; }
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

从Shanks洛克瞬秒看中单技能链与进场时机 2026/9/6 6:26:14

从Shanks洛克瞬秒看中单技能链与进场时机

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
数据中心用水量如何量化?WUE指标与液冷降耗工程解析 2026/9/6 6:26:14

数据中心用水量如何量化?WUE指标与液冷降耗工程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
ASTC纹理压缩深度解析:astcenc源码审计与移动端性能优化实践 2026/9/6 6:26:14

ASTC纹理压缩深度解析:astcenc源码审计与移动端性能优化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
RK3588零拷贝跨进程通信:DMA-BUF原理与实战指南 2026/9/6 6:26:14

RK3588零拷贝跨进程通信:DMA-BUF原理与实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
GG3M|标定报告接入审计表 + 版本化参数管理 + 首次 Real 标定全工程落地 2026/9/6 6:26:14

GG3M|标定报告接入审计表 + 版本化参数管理 + 首次 Real 标定全工程落地

标题GG3M标定报告审计表与版本化参数管理工程实现——从事件流到可审计参数版本链:schema扩展、存储层、首次Real标定全链路落地摘要本文完成GG3M竞争治理引擎动力学参数标定从“可审计报告”到“审计表落库版本化参数管理”的完整工程升级。核心交付包括&#xff1…

阅读更多 →
第26章:Celery Signals 信号机制 2026/9/6 6:23:13

第26章:Celery Signals 信号机制

0. 上一章思考题参考答案 思考题 1:双源对账 自我监控:① 事件流指标(succeeded/failed 计数)与 Backend 结果键计数(celery-task-meta-* 按状态统计)做差量对账——消费者重启期间事件丢失,但…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞