Problem
有一个h行w列的棋盘,里面有一些格子是不能走的,现在要求从左上角走到右下角的方案数。(只能向右和向下走)
Solution
黑点里加入右下的点,每个点求一个ans[i],代表走到这个点的方案数。
ans[i]初始为C(n+m-2,m-1),对于所有在它左上的点,都减去那个点的ans[j]乘i、j之间的方案数。
(每个黑点,求ans的时候是求:不经过其左上所有的黑点,到它的方案数;用的时候是减去:经过这个点到右下的所有可能,此时路径没有经过当前黑点左上的黑点,因此每个黑点的ans是独立的。)
Code
#include
#include
#include
#include
#include
#include
#include
#include