求大佬康康 3 4过不了
查看原帖
求大佬康康 3 4过不了
1261713
vvwvv楼主2025/1/23 18:38
#include<bits/stdc++.h>
using namespace std;
using ll = long long ;
ll record[5000+10][5000+10]={0};
bool vis[5000+10][5000+10]={0};
int dx[]= {-2, -1, 1, 2, -2, -1,  1, 2};
int dy[]= { 1, 2, 2, -1, -1, -2, -2, 1};
int main()
{
    ll m,n,x,y;

    cin>>x>>y>>n>>m;
    vis[n][m] = 1;
    for(int i=0;i<=7;i++)
    if(n+dx[i]>=0 &&n+dx[i]<=x && m+dy[i]>=0 && m+dy[i]<=y)
    vis[n+dx[i]][m+dy[i]]=1;

    for(int i=0;i<=x;i++)
        if(!vis[i][0])
        record[i][0]=1;
    for(int i=0;i<=y;i++)
        if(!vis[0][i])
        record[0][i]=1;

    for(int i=1;i<=x;i++)
        for(int j=1;j<=y;j++)
        if(!vis[i][j])
        record[i][j] = record[i-1][j] + record[i][j-1];
    cout<<record[x][y];

    return 0;
}
2025/1/23 18:38
加载中...