NC16708 过河卒

题目

  • 原题地址:过河卒
  • 题目编号:NC16708
  • 题目类型:线性DP
  • 时间限制:C/C++ 1秒,其他语言2秒
  • 空间限制:C/C++ 32768K,其他语言65536K

1.题目大意

  • 网格起点(0,0)终点(n,m)9个点不能走,求路径数

2.题目分析

  • 先标记一下再遍历一遍出答案
  • 感觉题面有问题,范围似乎是30

3.题目代码

#include <bits/stdc++.h>
#define ll long long

using namespace std;

ll n, m, x, y;
ll a[30][30];
ll dx[]={0,1,2,1,2,-1,-2,-1,-2};
ll dy[]={0,2,1,-2,-1,2,1,-2,-1};

int main() {
    cin >> n >> m >> x >> y;
    a[0][0] = 1;
    for(int i=0;i<9;i++) a[x+dx[i]][y+dy[i]] = -1;
    for(int i=0;i<=n;i++) for(int j=0;j<=m;j++){
        if(a[i][j]==-1) continue;
        if(a[i+1][j]!=-1) a[i+1][j] += a[i][j];
        if(a[i][j+1]!=-1) a[i][j+1] += a[i][j];
    } cout << a[n][m] << endl;
}
posted @ 2022-09-09 15:55  仪战群儒  阅读(28)  评论(0)    收藏  举报