没
多少份
<=0
TLE80
你为什么要用 bool dfs
这种写法,我觉得void可能就不会出现这种
而且更简短一点
但没问题吧
或者你用void,然后在
输出“Yes”,并exit(0)
在最后输出"No"
折叠代码
#include <bits/stdc++.h>
#pragma optimize(2)
using namespace std;
bool ans = 0;
char c[5] = {'s', 'n', 'u', 'k', 'e'};
int n, m;
int dx[] = {1, 0, -1, 0}, dy[] = {0, 1, 0, -1};
vector<vector<bool>> vis;
vector<vector<char>> mp;
void dfs(int x, int y, int idx)
{
vis[x][y] = 1;
if (mp[x][y] != c[idx])
return;
if (x == n && y == m)
{
ans = 1;
return;
}
for (int i = 0; i < 4; i++)
{
int tx = x + dx[i], ty = y + dy[i];
if (tx <= 0 || ty <= 0 || tx > n || ty > m)
continue;
if (vis[tx][ty])
continue;
dfs(tx, ty, (idx + 1) % 5);
if (ans)
return;
vis[tx][ty] = 0;
}
}
int main()
{
cin >> n >> m;
mp.resize(n + 1, vector<char>(m + 1));
vis.resize(n + 1, vector<bool>(m + 1, 0));
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
cin >> mp[i][j];
dfs(1, 1, 0);
cout << (ans ? "Yes" : "No");
return 0;
}
/*
2 3
sns
euk
2 2
ab
cd
5 7
skunsek
nukesnu
ukeseku
nsnnesn
uekukku
*/
用我的试试
80TLE
到底A没A
你能不能不用vector,用正常的数组是是
试过了,没有用
我的方法代码给一下
*
我的代码就是你的方法
这样对吧
使得
给一下完整代码 @yhxyd0109 @杨北辰
那是AC代码,给不得