问题标题: 洛谷:P1002 [NOIP2002 普及组] 过河卒

0
0
已解决
陈曦
陈曦
资深天翼
资深天翼

题目传送门

60分代码

#include<iostream>
#include<cstdio>
using namespace std;
int m,n,x,y;
int f[25][25];
int dir[9][2]={{0},{-1,-2},{-2,-1},{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2}};
bool vis[25][25];
int main(){
    cin>>n>>m>>x>>y;
    for(int i=0;i<=8;i++){
        int dx=x+dir[i][0],dy=y+dir[i][1];
        vis[dx][dy]=true;
    }
    if(vis[0][0])
        f[0][0]=0;
    else
        f[0][0]=1;
    for(int i=0;i<=n;i++){
        for(int j=0;j<=m;j++){
            if(vis[i][j]) continue;
            if(i-1>=0){
                f[i][j]+=f[i-1][j];
            }
            if(j-1>=0){
                f[i][j]+=f[i][j-1];
            }
        }
    }
    cout<<f[n][m];
    return 0;
}

哪错了


0
已采纳
汪恺恒
汪恺恒
中级启示者
中级启示者

用long long 即可AC

我要回答