[每日一题2020.06.08]洛谷P1605 DFS
今天cf又杯具的只写出2题, 虽然AB题20分钟左右就搞定了, 但是CD写了2个小时也没写出来
D题我用到了DFS, 虽然必不正确, 但是我至少发现了一个问题, 那就是我连DFS都忘了, 于是怒找DFS板子写一写...
/*
* Author: RoccoShi
* Time: 2020-06-08 02:08:41
*/
#include <bits/stdc++.h>
using namespace std;
int n, m, t, x, y;
int sx, sy, fx, fy;
int a[10][10];
int vis[10][10];
int dx[4] = {0,0,1,-1};
int dy[4] = {-1,1,0,0};
int sum;
void dfs(int x,int y){
if(x == fx && y == fy){
sum ++;
return;
}
if(x < 1 || x > n || y > m || y < 1)
return ;
{
for(int i=0; i<4; ++i){
if(a[x+dx[i]][y+dy[i]] != 1 && !vis[x+dx[i]][y+dy[i]]){
vis[x][y] = 1;
dfs(x+dx[i],y+dy[i]);
vis[x][y] = 0;
}
}
}
return ;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n >> m >> t;
cin >> sx >> sy >> fx >> fy;
while(t--){
cin >> x >> y;
a[x][y] = 1;
}
dfs(sx,sy);
cout << sum;
return 0;
}