博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF Gym 100187E Two Labyrinths (迷宫问题)
阅读量:5145 次
发布时间:2019-06-13

本文共 1153 字,大约阅读时间需要 3 分钟。

题意:问两个迷宫是否存在公共最短路。

题解:两个反向bfs建立层次图,一遍正向bfs寻找公共最短路

#include
#include
#include
using namespace std;const int maxn = 500+1;int d1[maxn][maxn];int d2[maxn][maxn];char g1[maxn][maxn];char g2[maxn][maxn];int n,m;struct node{ int x,y; node(int X = 0, int Y = 0){ x = X; y = Y; }};int dx[] = {
1,-1,0,0};int dy[] = {
0,0,1,-1};//1,1void rbfs(int id){ char (*G)[maxn]; int (*vis)[maxn]; if(id == 1) G = g1, vis = d1; else G = g2, vis = d2; memset(vis,-1,sizeof(d1)); queue
q; node u(n-1,m-1); q.push(u); vis[u.x][u.y] = 0; while(q.size()){ u = q.front();q.pop(); if(u.x == 0 && u.y == 0) return; for(int i = 0; i < 4; i++){ int nx = u.x + dx[i], ny = u.y + dy[i]; if(nx>=0&&nx
=0&&ny
q; q.push(node(0,0)); int tx = n-1, ty = m-1; while(q.size()){ node &u = q.front(); if(u.x == tx && u.y == ty) return true; for(int i = 0; i < 4; i++){ int nx = u.x + dx[i], ny = u.y + dy[i]; if(nx>=0&&nx
=0&&ny

 

转载于:https://www.cnblogs.com/jerryRey/p/4658378.html

你可能感兴趣的文章
SQL语法(3)
查看>>
在js在添版本号
查看>>
sublime3
查看>>
Exception Type: IntegrityError 数据完整性错误
查看>>
Nuget:Newtonsoft.Json
查看>>
Hdu - 1002 - A + B Problem II
查看>>
每天CookBook之Python-003
查看>>
Android设置Gmail邮箱
查看>>
js编写时间选择框
查看>>
JIRA
查看>>
小技巧——直接在目录中输入cmd然后就打开cmd命令窗口
查看>>
深浅拷贝(十四)
查看>>
HDU 6370(并查集)
查看>>
BZOJ 1207(dp)
查看>>
PE知识复习之PE的导入表
查看>>
HDU 2076 夹角有多大(题目已修改,注意读题)
查看>>
洛谷P3676 小清新数据结构题(动态点分治)
查看>>
九校联考-DL24凉心模拟Day2T1 锻造(forging)
查看>>
Attributes.Add用途与用法
查看>>
L2-001 紧急救援 (dijkstra+dfs回溯路径)
查看>>