[uva11OPEN]玉米田迷宫Corn Maze(广搜bfs)
时间:2019-08-24
本文章向大家介绍[uva11OPEN]玉米田迷宫Corn Maze(广搜bfs),主要包括[uva11OPEN]玉米田迷宫Corn Maze(广搜bfs)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
第一次做MLE了…第二次WA了5个点,其实就是一个判断错了…QAQ总的来说…是个水题/板子题(逃
#include<bits/stdc++.h> using namespace std; #define For(i,l,r) for(register int i=l; i<r; i++) int n,m; int d[4][2] = { 0, 1, 0, -1, 1, 0, -1, 0 }; bool bj,vis[301][301]; char ch[301][301]; struct cs{ int x1,y1,x2,y2; bool p; }chs[35]; struct node { int x, y, t; } q[90001]; inline bool check(int x, int y) { return x >= 0 && y >= 0 && x < n && y < m && vis[x][y] == 0; } int main() { int sx,sy,ex,ey; string s; scanf("%d%d",&n,&m); For(i,0,n){ cin>>s; For(j,0,m){ if(s[j] == '=')ex = i, ey = j; else if(s[j] == '#')vis[i][j]=1; else if(s[j] == '@')sx = i, sy = j; else if(s[j] >= 'A' && s[j] <= 'Z'){ int c = s[j]-'A'; ch[i][j] = s[j]; if (chs[c].p == 1)chs[c].x2 = i, chs[c].y2 = j; //就是这儿的判断!555查了一晚上_(:3/)__ else chs[c].x1 = i, chs[c].y1 = j, chs[c].p = 1; } } } int head = 0, tail = 1; q[tail].x = sx, q[tail].y = sy; vis[sx][sy] = 1; while(head < tail){ head++; int xn = q[head].x, yn = q[head].y; For(i,0,4){ int dx = d[i][0] + xn; int dy = d[i][1] + yn; if(check(dx,dy)){ vis[dx][dy] = 1; if(ch[dx][dy] >= 'A' && ch[dx][dy] <= 'Z'){ int c = ch[dx][dy] - 'A'; if (dx == chs[c].x1 && dy == chs[c].y1) dx = chs[c].x2, dy = chs[c].y2; else dx = chs[c].x1, dy = chs[c].y1; } q[++tail].x = dx; q[tail].y = dy; q[tail].t = q[head].t + 1; if(dx == ex && dy == ey){ cout << q[tail].t; return 0; } } } } }
原文地址:https://www.cnblogs.com/phemiku/p/11406293.html
- Codeforces 714A Meeting of Old Friends
- Code forces 719A Vitya in the Countryside
- Hadoop数据分析平台实战——190Highcharts介绍离线数据分析平台实战——190Highcharts介绍
- HUST 1555 A Math Homework
- HUST 1541 Student’s question
- HDU 3785 寻找大富翁
- Hadoop数据分析平台实战——250JSSDK数据收集引擎编写离线数据分析平台实战——250JSSDK数据收集引擎编写
- HDU 2564 词组缩写
- 约瑟夫问题方法总结
- 欧里几德及扩展欧里几德算法
- Hadoop数据分析平台实战——260用户数据ETL离线数据分析平台实战——260用户数据ETL
- # Hadoop离线数据分析平台实战——230项目数据存储结构设计Hadoop离线数据分析平台实战——230项目数据存储结构设计
- ECJTUACM16 Winter vacation training #5 题解&源码
- Codeforces 716A Crazy Computer
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Hacking with iOS: SwiftUI Edition - Hot Prospects项目(二)
- HarmonyOS-对Android开发者也太友好了吧
- 你还在使用复杂的 zkclient 开发 zookeeper 么?是时候用 Curator 了 !
- 如何通俗理解类和类型的差别?
- 如何理解变量?
- 装逼篇 | 抖音超火的九宫格视频是如何生成的,Python 告诉你答案
- 能否详细讲讲字符串呢?
- 能否一次性帮我把数组讲明白?
- 什么是装箱和拆箱?
- ceph常用命令
- 如何创建一个不受长度限制的数组?
- 数组、列表及字符串如何相互转换?
- 批量ping-shell
- 能否详细介绍一下判断语句?
- IF ELSE IF 到底算不算分支语句?