手机网站和微网站,wordpress统计访问量,中山网站关键字优化,网站后台系统使用题目描述
方格分割 - 蓝桥云课 (lanqiao.cn) 题目分析
对于每个图我们可以从中间开始搜索#xff0c;如果到达边界点就说明找到了一种对称的方法#xff0c;我们可以直接对此进行答案记录每次进行回溯就会找到不同的图像#xff0c;如果是一样的图像则算一种情况#xff…题目描述
方格分割 - 蓝桥云课 (lanqiao.cn) 题目分析
对于每个图我们可以从中间开始搜索如果到达边界点就说明找到了一种对称的方法我们可以直接对此进行答案记录每次进行回溯就会找到不同的图像如果是一样的图像则算一种情况故我们将图像旋转一周会发现四种相同的情况最后答案除4即可
注对称搜索中我们如果一个点标记为(x, y)则另一个对称点则为(6 - x, 6 - y)
#includebits/stdc.h
using namespace std;
const int N 2e3 10;
int ans;
bool vis[N][N];
int dx[4] {-1, 0, 1, 0};
int dy[4] {0, 1, 0, -1};
void dfs(int x, int y)
{if(x 0 || y 0 || x 6 || y 6){ans ;return;}vis[x][y] 1;vis[6 - x][6 - y] 1;for(int i 0; i 4; i ){int nx x dx[i];int ny y dy[i]; if(nx 0 nx 6 ny 0 ny 6 !vis[nx][ny]){dfs(nx, ny);}}vis[x][y] 0;vis[6 - x][6 - y] 0;
}
int main()
{dfs(3, 3);cout ans / 4;return 0;
}