AcWing 2067. 走方格

在平面上有一些二维的点阵。

这些点的编号就像二维数组的编号一样,从上到下依次为第 11 至第 nn 行,从左到右依次为第 11 至第 mm 列,每一个点可以用行号和列号来表示。

现在有个人站在第 11 行第 11 列,要走到第 nn 行第 mm 列。

只能向右或者向下走。

注意,如果行号和列数都是偶数,不能走入这一格中。

问有多少种方案。

输入格式

输入一行包含两个整数 n,mn,m。

输出格式

输出一个整数,表示答案。

数据范围

1≤n,m≤301≤n,m≤30

输入样例1:

3 4

输出样例1:

2

输入样例2:

6 6

输出样例2:

0

状态q[i][j],表示走到这个点的方案

ac代码: 

#include<iostream>

const int N = 50;
int q[N][N];
int n,m;

using namespace std;

int main()
{
    cin>>n>>m;
    q[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%2||j%2){
            q[i][j] = q[i-1][j] + q[i][j-1];//走到q[i][j]的方案数为i-1,j;i,j-1的和。
        }
    }
    cout<<q[n][m];
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值