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

双头BFS

牛客月赛100 D题,过了80%数据,调了一下午。。。烦死了。。。

还是没调试出来,别人的代码用5维的距离的更新有滞后性,要在遍历之前要去重。。。

#include<bits/stdc++.h>
using namespace std;
const int N=2e3+10;
char g[N][N];
int dis[N][N],d1[N][N];
int n,m,sx,sy;
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
typedef pair<int,int>PII;
queue<PII>q;
int bfs()
{while(q.size()){auto [x,y]=q.front();q.pop();for(int i=0;i<4;i++){int a=x+dx[i],b=y+dy[i];if(a<1||a>n||b<1||b>m)continue;if(dis[a][b]!=-1)continue;dis[a][b]=dis[x][y]+1;q.push({a,b});}}int ans=0x3f3f3f3f;memset(d1,-1,sizeof d1);queue<array<int,4>>p;p.push({sx,sy,sx,sy});d1[sx][sy]=0;while(p.size()){auto[x1,y1,x2,y2]=p.front();p.pop();for(int i=0;i<4;i++){int a=x1+dx[i],b=y1+dy[i];int c=x2-dx[i],d=y2-dy[i];if(a<1||a>n||b<1||b>m||c<1||c>n||d<1||d>m)continue;if(g[a][b]=='#'||g[c][d]=='#')continue;if(d1[a][b]!=-1)continue;d1[a][b]=d1[x1][y1]+1;if(g[a][b]=='@')ans=min(ans,d1[a][b]+dis[c][d]);p.push({a,b,c,d});}}if(ans!=0x3f3f3f3f)return ans;return -1;
}
int main()
{memset(dis,-1,sizeof dis);cin>>n>>m>>sx>>sy;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>g[i][j];if(g[i][j]=='@'){q.push({i,j});dis[i][j]=0;}}}cout<<bfs()<<endl;
//     for(int i=1;i<=n;i++){
//         for(int j=1;j<=m;j++){
//             cout<<dis[i][j];
//         }
//         puts("");
//     }   
//     puts("");
//     for(int i=1;i<=n;i++){
//         for(int j=1;j<=m;j++){
//             cout<<d1[i][j];
//         }
//         puts("");
//     }   return 0;
}

http://www.lryc.cn/news/432324.html

相关文章:

  • 使用Spring Boot拦截器实现时间戳校验以防止接口被恶意刷
  • 第10讲 后端2
  • 统计学习方法与实战——统计学习方法概论
  • 人体红外传感器简介
  • 【JAVA入门】Day35 - 方法引用
  • 集合及映射
  • 软考基础知识之计算机网络
  • 云手机怎样简化海外社媒平台运营
  • 创业者必读!选择拍卖源码还是自建开发,哪种方案更安全?
  • Spring Cloud Gateway整合基于STOMP协议的WebSocket实战及遇到问题解决
  • 软考高级:系统架构设计师——软件架构设计 Chapter 笔记
  • PageHelper组件 实现前端分页查询功能
  • 线性回归与逻辑回归在模型参数优化上的比较
  • JavaWeb JavaScript 10.日程管理 第一期
  • redis为什么快
  • 十分钟学会Kubernetes(K8S) 部署SpringBoot3.0
  • 顺序表的插入与删除
  • FFMPEG -- 音频开发
  • lxml官方入门教程(The lxml.etree Tutorial)翻译
  • string详解
  • 基于约束大于规范的想法,封装缓存组件
  • 自动化测试面试真题(附答案)
  • 云原生架构概念
  • 85、 探针
  • 2024全国大学省数学建模竞赛A题-原创参考论文(部分+第一问代码)
  • 在VScode上写网页(html)
  • C#中LINQ的Cast<T>与OfType<T>
  • 小阿轩yx-Kubernertes日志收集
  • 0to1使用Redis实现“登录验证”次数限制
  • ARM----时钟