第十届蓝桥杯大赛软件类决赛C/C++ 大学B组 试题C: 拼接 解答
【问题描述】
小明要把一根木头切成两段,然后拼接成一个直角。
如下图所示,他把中间部分分成了n * n 的小正方形,他标记了每个小正方
形属于左边还是右边。然后沿两边的分界线将木头切断,将右边旋转向上后拼
接在一起。
要求每个小正方形都正好属于左边或右边,而且同一边的必须是连通的。
在拼接时,拼接的部位必须保持在原来大正方形里面。
请问,对于7 *7 的小正方形,有多少种合法的划分小正方形的方式。
#include <bits/stdc++.h>
using namespace std;
int ans = 0;
void invert(int n, int** a,int** b)
{
for (int i = 0; i < n; i++)
{
*((int *)b+n*i+n-1-i)=*((int *)a+n*i+n-1-i);
}
for (int i = 0; i < n - 1; i++)
{
for (int j = 0