算法设计与分析分支限界算法之最小步数问题

该博客探讨了在一个100x100的棋盘上,马同时按照'日'和'田'字走法,从给定的起点到(1,1)的最少步数问题。通过分支限界算法进行分析,包括搜索空间、数据结构和约束条件的描述,并提供了实现算法的代码片段。" 103257579,9180814,ASP.Net MVC控制器跳转技术详解,"['Asp.Net', 'MVC', 'C#']
摘要由CSDN通过智能技术生成

分支限界算法之最小步数问题

问题描述

在各种棋中,棋子的走法总是一定的,如中国象棋中马走“日”。有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按“日”走,也能如象一样走“田”字。他的同桌平时喜欢下围棋,知道这件事后觉得很有趣,就想试一试,在一个(100*100)的围棋盘上任选两点A、B,A点放上黑子,B点放上白子,代表两匹马。棋子可以按“日”字走,也可以按“田”字走,俩人一个走黑马,一个走白马。谁用最少的步数走到左上角坐标为(1,1)的点时,谁获胜。现在他请你帮忙,给你A、B两点的坐标,想知道两个位置到(1,1)点可能的最少步数。【输入样例】
  12 16
  18 10
  【输出样例】
  8
  9

算法分析

1.搜索空间
从(1,1)计算到达A, B位置的最小值
如果两个A, B均以计算,算法停止
在这里插入图片描述
2、数据结构
设queue——队列,存储从(1,1)可达的点(queue[k][1…2])以及到达该点所需要的最少步数(queue[k][3])(0≤k≤192+1)。队列的首指针为head,尾指针为tail。初始时,queue中只有一个元素

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值