社区讨论

60分求调

P1002[NOIP 2002 普及组] 过河卒参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mlqluwa9
此快照首次捕获于
2026/02/17 20:54
前天
此快照最后确认于
2026/02/18 20:12
16 小时前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
int a[21][21]={0};
bool b[21][21];
int tmp1[8]={-2,-2,-1,-1,1,1,2,2};
int tmp2[8]={-1,1,2,-2,2,-2,-1,1};
int n,m,x,y;
int main(){
    cin>>n>>m>>x>>y;
    b[x][y]=1;
    for (int i=0; i<8; i++){
        if(x+tmp1[i]<=n && x+tmp1[i]>=0 && y+tmp2[i]<=m && y+tmp2[i]>=0){
            b[x+tmp1[i]][y+tmp2[i]]=1;
        }
    }
    for (int i=0; i<=n; i++){
        for (int j=0; j<=m; j++){
            if(i==0 && j==0){
                a[i][j]=1;
            }
            else if(!b[i][j]){
                a[i][j]=a[i-1][j]+a[i][j-1];
            }
            else{
                a[i][j]=0;
            }
        }
    }
    cout<<a[n][m];
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...