DFS矩阵构造+快速矩阵幂 hdu5434 Peace small elephant

传送门:点击打开链接

题意:摆放小象,使得所有棋子的攻击范围的位置都是空白

思路:m这么小n这么大很明显是在提示你要用快速幂,问题就在于如何构造矩阵了,然而这题看似矩阵太复杂了,别说的云里雾里,但是仔细一分析,,就是发现并没有那么难..


我们把m看作棋盘的列数,n看作棋盘的行数,下面我们只考虑两行棋子

那么对于相邻两行的同一列的两个位置,现在我们考虑这两个位置可以怎么放。

1.如果这两个位置是在第一列,那么可以是任意的,即4种状态都是可以的,01,10,11,00

2.如果不是在第一列,设当前在第i列

首先,无论之前是什么情况,第i列可以都不放,也可以都放


除了上面两种摆放方法外,那么剩下的摆放方法跟跟i-1列已经放的棋子是有联系的

如果i-1列的两个位置的状态是一样的,即都放了棋子,或者都没放棋子,那么对于第i列,我就可以在第i列中选择其中一个位置摆放棋子,另一个位置不摆放棋子

如果i-1列的两个位置状态不一样,也就是说,一个摆放了棋子,一个没有摆放棋子,那么在第i列,在i-1列摆放了棋子的右边那个位置是可以摆放棋子的,对应的另一行的位置是不能摆放棋子的


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值