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

【回忆迷宫——处理方法+DFS】

题目

代码

#include <bits/stdc++.h>
using namespace std;
const int N = 250;
int g[N][N];
bool vis[N][N];
int dx[4] = {0, 0, -1, 1};
int dy[4] = {-1, 1, 0, 0};
int nx = 999, ny = 999, mx, my;
int x = 101, y = 101; //0墙 (1空地 2远方)
bool jud(int x, int y)
{if(vis[x][y]) return false;if(x < nx || x > mx || y < ny || y > my) return false;for(int i = 0; i < 4; i++){int nx = x + dx[i];int ny = y + dy[i];if(g[nx][ny] == 1) return false;}return true;
}
void dfs(int x, int y)
{vis[x][y] = 1;g[x][y] = 2;for(int i = 0; i < 4; i++){int nx = x + dx[i];int ny = y + dy[i];if(jud(nx, ny)) dfs(nx, ny);}
}
int main()
{int n;cin >> n;nx = min(nx, x); ny = min(ny, y);mx = max(mx, x); my = max(my, y);g[x][y] = 1; //这一句本来应该不用,感觉数据有问题for(int i = 1; i <= n; i++){char c;cin >> c;if(c == 'U') x--;else if(c == 'L') y--; else if(c == 'D') x++;else if(c == 'R') y++;g[x][y] = 1;nx = min(nx, x); ny = min(ny, y);mx = max(mx, x); my = max(my, y);}nx--, ny--, mx++, my++;for(int i = nx; i <= mx; i++){if(jud(i, ny)) dfs(i, ny);if(jud(i, my)) dfs(i, my);}for(int i = ny; i <= my; i++){if(jud(nx, i)) dfs(nx, i);if(jud(mx, i)) dfs(mx, i);}for(int i = nx; i <= mx; i++){for(int j = ny; j <= my; j++){if(g[i][j] == 0) cout << '*';else cout << ' ';}cout << '\n';}
}

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

相关文章:

  • 华为OD机试真题---战场索敌
  • 计算机网络 (53)互联网使用的安全协议
  • c++算法贪心系列
  • 【Maui】注销用户,采用“手势”点击label弹窗选择
  • 智慧脚下生根,智能井盖监测终端引领城市安全新革命
  • Word2Vec如何优化从中间层到输出层的计算?
  • 第七篇:vue3 计算属性:computed
  • 搭建k8s集群
  • Android SystemUI——最近任务应用列表(十七)
  • java 根据前端传回的png图片数组,后端加水印加密码生成pdf,返回给前端
  • 《探秘鸿蒙Next:如何保障AI模型轻量化后多设备协同功能一致》
  • C语言二级
  • 隐私保护+性能优化,RyTuneX 让你的电脑更快更安全
  • rust学习-宏的定义与使用
  • 【学习总结|DAY032】后端Web实战:登录认证
  • leetcode 123. 买卖股票的最佳时机 III
  • Apache Tika 详解
  • ChatGPT被曝存在爬虫漏洞,OpenAI未公开承认
  • Qt——界面优化
  • python学opencv|读取图像(四十一 )使用cv2.add()函数实现各个像素点BGR叠加
  • Spring MVC和Spring WebFlux的区别
  • Linux探秘坊-------4.进度条小程序
  • Llama 3:开源大模型的里程碑式突破
  • 计算机网络 (56)交互式音频/视频
  • STM32 GPIO工作模式
  • 自动化实现的思路变化
  • MongoDB的索引与聚合
  • Java菜鸟养成计划(java基础)--java运算符
  • 除了基本的事件绑定,鸿蒙的ArkUI
  • 0164__【GNU】gcc -O编译选项 -Og -O0 -O1 -O2 -O3 -Os