蓝桥杯历届试题 剪格子
来源:互联网 发布:程序员怎么升职架构师 编辑:程序博客网 时间:2024/04/24 06:03
题目链接:点击打开链接
#include<stdio.h>
#include<string.h>
int n,m,sum,ant,ans,s;
int a[10][10],visit[10][10];
int move[4][2]={0,1,0,-1,1,0,-1,0};
int judge(int x,int y)
{
if(x<0||x>=n||y<0||y>=m||visit[x][y])
return 0;
return 1;
}
void dfs(int x,int y)
{
int i,j;
if(s==sum)
{
if(ant>ans)
ant=ans;
return ;
}
for(i=0;i<4;i++)
{
int nx=x+move[i][0];
int ny=y+move[i][1];
if(judge(nx,ny)&&(s+a[nx][ny])<=sum)
{
visit[nx][ny]=1;
s+=a[nx][ny];
ans++;
dfs(nx,ny);
visit[nx][ny]=0;
s-=a[nx][ny];
ans--;
}
}
return ;
}
int main()
{
int i,j;
while(~scanf("%d%d",&m,&n))
{
sum=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
sum+=a[i][j];
}
memset(visit,0,sizeof(visit));
if(sum%2)
printf("0\n");
else
{
sum/=2;
ant=0x3f3f3f;
s=a[0][0];
ans=0;
visit[0][0]=1;
dfs(0,0);
if(ant==0x3f3f3f)
printf("0\n");
else
printf("%d\n",ant+1);
}
}
return 0;
}
- 蓝桥杯-历届试题 剪格子
- 蓝桥杯 历届试题 剪格子
- 蓝桥杯 历届试题 剪格子
- 蓝桥杯 历届试题 剪格子
- 蓝桥杯 历届试题 剪格子
- 历届试题 剪格子 蓝桥杯
- 蓝桥杯历届试题 剪格子
- 历届试题 剪格子
- 历届试题 剪格子
- 历届试题 剪格子
- 历届试题 剪格子
- 历届试题 剪格子
- 历届试题 剪格子
- 历届试题 剪格子
- 蓝桥杯--历届试题 剪格子(DFS)
- 蓝桥杯-- 历届试题 剪格子(dfs)
- 蓝桥杯 历届试题 剪格子 (dfs)
- 历届试题 剪格子 (蓝桥杯)
- Hadoop2.0的HA介绍
- typedef用法详解
- C++练习:返回数组的引用
- 交叉编译环境配置(Cortex-A8)
- PCB设计技巧:如何在PCB文件中快速定位元器件
- 蓝桥杯历届试题 剪格子
- 3.Longest Substring Without Repeating Characters【LeetCode算法之旅3】
- Java基础
- 3-1 数据类型概述、print语句、注释
- RTE
- linux部分命令整理
- 二分查找
- C语言指针之二malloc的用法及详解
- 【计算机视觉】运动目标检测算法文献阅读笔记