最小步数
来源:互联网 发布:淘宝介入买家举证时间 编辑:程序博客网 时间:2024/05/10 05:41
四个递归,向上左下右四个方向走,类似二叉树的遍历两个递归,分别遍历了左右子树,最初把最小值置为一个较大值1000,而且在每次for循环开始都要初始化。
还可以用另一种方法,二维数组标记,a[4][2],如表示向上的两个走或没走过的状态,然后利用for循环就行啦!
#include<stdio.h>
int row2, col2, row1, col1, count, min;
int a[9][9]=
{1,1,1,1,1,1,1,1,1,
1,0,0,1,0,0,1,0,1,
1,0,0,1,1,0,0,0,1,
1,0,1,0,1,1,0,1,1,
1,0,0,0,0,1,0,0,1,
1,1,0,1,0,1,0,0,1,
1,1,0,1,0,1,0,0,1,
1,1,0,1,0,0,0,0,1,
1,1,1,1,1,1,1,1,1};
void step( int row, int col )
{
if((row == row2)&&(col == col2))
{
if(count < min)
min=count;
return ;
}
if( a[row][col] == 0 )
{
count++;
a[row][col] = 1;
step( row-1, col );
step( row, col-1 );
step( row+1, col );
step( row, col+1 );
a[row][col] = 0;
count--;
}
}
int main(void)
{
int n, i;
scanf("%d", &n);
for( i = 0; i < n; i++)
{
min = 10000;
scanf("%d%d%d%d", &row1,&col1,&row2,&col2);
step( row1, col1 );
printf("%d\n",min);
}
return 0;
}
- 最小步数
- 最小步数
- nyoj最小步数
- 最小步数
- nyoj58最小步数
- 最小步数
- 58-最小步数
- 【NYOJ58】最小步数
- 迷宫最小步数
- nyvj-最小步数
- nyoj-最小步数
- 迷宫最小步数
- 最小步数
- 三、四柱汉诺塔最小步数
- nyoj 58 最小步数
- 最小步数nyoj--92
- NYOJ 58 最小步数
- nyoj 58 最小步数
- C#邮件的发送(只写发送)
- SQL函数说明大全
- 从头开始学Java--第一课
- OpenSSL命令---genrsa
- 多表联合查询(join、union等)
- 最小步数
- sql实现分组排序
- Memory Management of Instance Variables (ARC)
- SQL 中怎么查询一个数据库中一共有多少个表
- 模拟器qemu技术内幕
- boost之lexical_cast简易说明
- (转)Linux的rc.local自启动服务
- 针对 hadoop 中MapReduce 测试过程中的内存溢出的问题
- Java基本开发环境搭建