走方格

走方格

https://www.luogu.com.cn/problem/P8707)

理解一下题目

1.行和列都是偶数的时候不能走,问有多少种到达终点的方法

看到题目的一瞬间,第一时间想到广搜,结果t了~悲伤~。
再瞅瞅数据范围1-30,~不t才怪~
回来再想想
他每次能走的路只能从上边或者左边过来,那么dp直接走
代码方法如下

 dp[1][1] = 1;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            if(i == 1 && j == 1)continue;
            if(i & 1)dp[i][j] = dp[i-1][j]+dp[i][j-1];
            else if(j & 1)dp[i][j] = dp[i-1][j]+dp[i][j-1];
        }
    }

注意第一次不能走,走的话全部都是0了;

或者把0行0列标了也行,这样的话要注意越界的情况不然会RE

posted @ 2023-01-10 18:06  TFOREVERY  阅读(29)  评论(0编辑  收藏  举报