RT,一只螳螂从左上角走到右下角有多少种走法(每次向右或者向下走一格,不能进入那三个黑色的坑)
其次,有这三个坑时,从上到下记三个坑为A,B,C,到了C后按规则就无法再到A和B,所以为了减掉经过C的走法,要将从左上角处出发到C,然后再从C出发到右下角的走法减掉即可,这样的走法有几种?这样的走法等于从左上角出发到C的走法乘以从C出发到右下角的走法,而从左上角处出发到C的走法计算方法和第一步差不多等于从6个空中挑2个“下”出来,所以共15种走法,而从C出发到右下角也一样的算,有C(4,1)=4种走法,所以要减掉这15*4=60种走法;
再次,要减掉经过B的走法,和第二步一样算(因为到了B,就无法到A和C),所以要减掉C(7,3)*C(3,1)=35*3=105种;
最后,怎么减经过A的走法?先按第二步算法,减掉C(4,1)*C(6,2)=4*15=60种,但这里我们多减了,多减了什么?多减了从A出发经过B再到右下角的走法,换句话说是多减了从A到B的走法乘以从B到右下角的走法,所以多减了3*3=9种,所以只要减60-9=51种。
所以答案是252-60-105-51=36种。
有63种走法
首先,没有那三个坑,很容易,无论如何都要往下5次,往右5次,所以走法等于从10个空中选5个出来填“下”,其他填“右”,所以共C(10, 5)=252种走法;
其次,有这三个坑时,从上到下记三个坑为A,B,C,到了C后按规则就无法再到A和B,所以为了减掉经过C的走法,要将从左上角处出发到C,然后再从C出发到右下角的走法减掉即可,这样的走法有几种?这样的走法等于从左上角出发到C的走法乘以从C出发到右下角的走法,而从左上角处出发到C的走法计算方法和第一步差不多等于从6个空中挑2个“下”出来,所以共15种走法,而从C出发到右下角也一样的算,有C(4,1)=4种走法,所以要减掉这15*4=60种走法;
再次,要减掉经过B的走法,和第二步一样算(因为到了B,就无法到A和C),所以要减掉C(7,3)*C(3,1)=35*3=105种;
最后,怎么减经过A的走法?先按第二步算法,减掉C(4,1)*C(6,2)=4*15=60种,但这里我们多减了,多减了什么?多减了从A出发经过B再到右下角的走法,换句话说是多减了从A到B的走法乘以从B到右下角的走法,所以多减了3*3=9种,所以只要减60-9=51种。
所以答案是252-60-105-51=36种。
整体思路没有什么问题,但是计算A的时候错了。
从开头到A 有4种, 从B到end有3种,从A到B有3种。所以从A经过B到end有9种。这部分已经在B的时候减过了,因此,多减的是4*9种,应该减去4*6种, 最后是: 252-60-105-24 = 63
在出题,发现这个题目还不错,用动态规划解出来发现结果不对。。害我检查了半天代码。。