原题和广搜代码在这里
时间同样0ms。
3 6
+-+-+.+-+-+
|...|.....|
+-+.+-+-+-+
..|.......|
S-+-+-+.E-+
#endif
#include <iostream>
#include <cstring>
#include <queue>
#define SIZE 101
#define NUM 10001
using namespace std;
struct node
{
int x, y;
};
char a[SIZE][SIZE];
int dir[SIZE][SIZE], res[NUM];
queue<node> q;
int dx[4] = {-1, 1, 0, 0};
int dy[4] = {0, 0, 1, -1};
char resc[NUM];
char chs[4] = {'N', 'S', 'E', 'W'};
bool visited[SIZE][SIZE];
int best[SIZE][SIZE];
bool check(int x, int y, int dir)
{
switch (a[x][y])
{
case '+':
return true;
case '-':
return (dir > 1);
case '|':
return (dir < 2);
}
return false;
}
void dfs(int x, int y, int st, int d) // 深搜过程
{
int i, r, c;
if ((st >