题意:
给你一个 n ∗ m n*m n∗m的地图,有一些不能到达的点,用#表示,有个人要从 ( 1 , 1 ) (1,1) (1,1)到 ( n , m ) (n,m) (n,m)点,你可以将其中任意点变成#,问你最少将多少个点变成#可以让这个人无法到达 ( n , m ) (n,m) (n,m)
分析与解答
①对于一开始便无法到达的点来说,不需要变任何一个
②因为 ( n , m ) (n,m) (n,m)点在左下角,我们只要放置 ( n − 1 , m ) (n - 1,m) (n−1,m)与 ( n , m − 1 ) (n,m - 1) (n,m−1)两个就可以不让他到达
因此只需要考虑是否只放一个点就能够阻止他
我们考虑 d p [ i ] [ j ] 、 d p 1 [ i ] [ j ] dp[i][j]、dp1[i][j] dp[i][j]、dp1[i][j]两个 d p dp dp数组,意义如下:
dp[i][j]:从(1,1)到(i,j)有多少种走法
dp1[i][j]:从 ( n , m )