题解 1432: 蓝桥杯2013年第四届真题-剪格子

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

c++深度优先搜素

摘要:#include<iostream> using namespace std; int m,n,cnt=0,sum=0,step=0,ans=9999999; int dx[5]={0,-1,1……

剪格子 (C++代码)

摘要:#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ……

蓝桥杯2013年第四届真题-剪格子-题解(C++代码)

**思路**:剪格子实际上就是dfs求一个连通图,在中间的过程中判断这个连通的是否满足矩阵总和的一半,满足说明我们找到了可以分成相等两部分(判断条件就是==sum/2)但是这部分的格子的数目不一定就是我们要的答案,(万一另一半部分格子数更小呢?)在此需要特判一下,就是找最小的。

勉强通过测试没办法解决两行两列问题的c++代码

解题思路:首先确定该题目是属于数据结构中的连通图的遍历问题,想到要使用dfs即深度优先遍历,属于一个递归,回溯和剪枝问题注意事项:要注意递归循环时需要在设置一个数组来标记该点有没有被访问过,否则会出现再次回到已访问的点的情况,我的代码只能勉强通过测试但是没办法解决221236这种情况参考代码:#inc

纯dfs求解-剪格子

```cpp#includeusingnamespacestd;constintN=10;inta[N][N],vis[N][N];intm,n;intdis[4][2]={0,1,0,-1,1,0,-1,0};inttot=0,ans=10000;voiddfs(intsum,