ZOJ 1002

今天做了一下 zoj 1002 。

这个题是对八皇后问题的一个扩展,加入了“墙”,用回溯法即可。

然后在具体的实现中,还是有很多问题要考虑的。

 

我最初的考虑是每放进一个blockhouse,就对地图做一下标记,指出它的影响(即哪些地方不能放了)。这样的话,地图就必须是局部变量了,因为要回溯就要恢复地图,对一个全局的地图恢复太费劲了。要局部变量就要写类,写各种构造函数,天啊,这个事,,。

 

用全局变量的话,就不能对地图有太大的改动,这样就必须动态地检查一个位置是否能放进一个blockhouse。

 

 

纠结于此,我在网上找找了, 洞庭散人 的解法不错,就照抄了一下。

 

基本的思路是这样:

从前往后,找到一个合法地址

放一个BH进去,递归向前

恢复地图,即这个地址不放BH, 递归向前。

 

用一个全局变量来记录可以达到的最大blockhouse数。

 

今天的收获是: 从算法到实现,还是有一定距离,需要一定技巧的。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值