http://lx.lanqiao.cn/problem.page?gpid=T27
历届试题 剪格子
时间限制:1.0s 内存限制:256.0MB
提交此题 锦囊1 锦囊2
问题描述
如下图所示,3 x 3 的格子中填写了一些整数。

+--*--+--+
|10* 1|52|
+--****--+
|20|30* 1|
*******--+
| 1| 2| 3|
+--+--+--+

我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60。

本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。

如果存在多种解答,请输出包含左上角格子的那个区域包含的格子的最小数目。

如果无法分割,则输出 0。

输入格式
程序先读入两个整数 m n 用空格分割 (m,n<10)。

表示表格的宽度和高度。

接下来是n行,每行m个正整数,用空格分开。每个整数不大于10000。

输出格式
输出一个整数,表示在所有解中,包含左上角的分割区可能包含的最小的格子数目。
样例输入1

3 3
10 1 52
20 30 1
1 2 3

样例输出1

3

样例输入2

4 3
1 1 1 1
1 30 80 2
1 1 1 100

样例输出2

10

/*
很明显是搜索题,根据题意可知起点就是左上角那个点,a[0][0].问题多解求最优宜用DFS
*/
AC_code:

#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
int a[15][15];
bool vis[15][15];
int n,m,sum,minLen;
int step_x[] = {-1,1,0,0},step_y[] = {0,0,-1,1};//上下左右四个方向
void DFS(int x,int y,int count,int aim)
{vis[x][y] = true;if(aim > sum/2)//可行性剪枝return ;if(aim == sum/2){if(count < minLen)minLen = count;return ;}for(int i = 0; i < 4; i++){int xx = x + step_x[i];int yy = y + step_y[i];if(!vis[xx][yy]&&xx>=0&&xx<n&&yy>=0&&yy<m){DFS(xx,yy,count+1,aim+a[xx][yy]);vis[xx][yy] = false;}}
}
int main()
{cin>>m>>n;for(int i = 0; i < n; i++){for(int j = 0; j< m; j++){cin>>a[i][j];sum += a[i][j];}}if(sum&1)cout<<"0"<<endl;else{minLen = INF;DFS(0,0,1,a[0][0]);if(minLen != INF)cout<<minLen<<endl;elsecout<<"0"<<endl;}return 0;
}

蓝桥杯历届试题 剪格子 (DFS)相关推荐

  1. 蓝桥杯 历届试题 剪格子

    历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB问题描述 如下图所示,3 x 3 的格子中填写了一些整数.+--*--+--+ |10* 1|52| +--****--+ |20|30* ...

  2. 蓝桥杯历届试题 剪格子

    #include #include using namespace std; int a[10][10];//用来存放每行每列的数字 int dx[4] = {0,1,0,-1}; //可以在二维方格 ...

  3. 蓝桥杯c语言试题幸运数,蓝桥杯  历届试题 幸运数  dfs

    时间限制:1.0s   内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,. ...

  4. [蓝桥杯][历届试题]网络寻路-dfs,图的遍历

    题目描述 X 国的一个网络使用若干条线路连接若干个节点.节点间的通信是双向的.某重要数据包,为了安全起见,必须恰好被转发两次到达目的地.该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同 ...

  5. 历届试题+九宫重排+java_蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)...

    Description 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的 ...

  6. 1432: 【蓝桥杯】:剪格子(迷宫问题变体)

    注意输入: m表示宽度,n表示高度(m表示列,n表示行) dfs: 从左上角开始走迷宫,如果走过路径的和为SUM/2,记录走过数字个数 求走过数字的最小值 代码: #include<iostre ...

  7. 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索

    问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...

  8. 蓝桥杯历届试题代码参考

    蓝桥杯历届试题代码参考 历届试题 核桃的数量 打印十字图 带分数 剪格子 错误票据 翻硬币 连号区间数 买不到的数目 大臣的旅费 幸运数 横向打印二叉树 危险系数 网络寻路 高僧斗法 格子刷油漆 农场 ...

  9. 问题 1433: [蓝桥杯][历届试题]危险系数(并查集and暴力)

    问题 1433: [蓝桥杯][历届试题]危险系数 时间限制: 1Sec 内存限制: 128MB 提交: 123 解决: 39 题目描述 问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用. 地道的 ...

最新文章

  1. mlcc激光雷达与相机外参标定初体验
  2. Yann LeCun“隔纸对话”黄铁军:图灵机上的深度学习能模拟世界吗?
  3. html自动兼容像素密度,解决 HTML Canvas 元素在高像素密度/高分辨率屏幕上显示模糊的问题...
  4. 全套CRC校验的算法
  5. SQL SERVER 打开脚本报“未能完成操作,存储空间不足”
  6. sqlserver2008r2安装
  7. sql语句中的in用法示例_示例中JavaScript in操作符
  8. Windows修改远程桌面端口方法步骤
  9. PHP重建索引数组的键值
  10. 云小课|三大灵魂拷问GaussDB(DWS)数据落盘安全问题
  11. SharePoint Excel Service-PowerShell
  12. 常用的对联广告带关闭功能
  13. 报错:error LNK2001:unresolved external symbol _WinMain@16
  14. Unity 3D 游戏引擎
  15. 电脑PC端实现微信多开
  16. 将VBS脚本编译成加密版本的VBE脚本
  17. 【BZOJ 3993】【SDOI 2015】星际战争
  18. 单芯片快速以太网MAC控制器DM9000介绍续
  19. 台式计算机耗电,台式电脑和笔记本耗电量对比,分别是多少?
  20. 苹果WWDC将于6月8日夏季发布会苹果WWDC发布会直播地址

热门文章

  1. List(Map(String, Object))转为Fastjson JSONArray
  2. 懒人必备!只需一行代码,就能导入所有的Python库
  3. 绝!关于pip的15个使用小技巧
  4. 特斯拉员工入职3天就“偷”代码,悄悄备份6300多Python脚本
  5. 科技公司最爱的 50 款开源工具,你都用过吗?
  6. 电脑打字手指正确姿势_正确的投篮姿势教学,许多人都忽略的细节,学会变投篮神射手...
  7. 张雪峰计算机科学与技术学什么,张雪峰看好的三大专业是什么 前景好的专业...
  8. 深度学习-线性回归基础-02
  9. 云服务器共享文件如何访问权限,怎么设置共享文件夹访问权限?
  10. linux ftp站点名称,Linux ftp命令的使用方法有哪些