AcWing 5493. 过河卒
原题链接
简单
作者:
你拿什么感同身受
,
2024-03-31 15:12:18
,
所有人可见
,
阅读 13
import java.util.Scanner;
public class Main{
public static void main(String[]args){
Scanner sc =new Scanner(System.in);
int x=sc.nextInt();
int y=sc.nextInt();
int x0=sc.nextInt();
int y0=sc.nextInt();
long dp[][]=new long[x+1][y+1];
boolean[][]str=new boolean[x+1][y+1];
str[x0][y0]=true;
int[]dx={-2,-2,-1,-1,1,1,2,2};
int[]dy={1,-1,2,-2,2,-2,1,-1};
for(int i=0;i<8;i++)
{
int a=x0+dx[i];
int b=y0+dy[i];
if(a>=0&&a<=x&&b>=0&&b<=y)
{
str[a][b]=true;
}
}
for(int i=0;i<=x;i++)
{
for(int j=0;j<=y;j++)
{
if(i==0&&j==0)
{
dp[i][j]=1;
}
else if(!str[i][j])
{
dp[i][j]=(i>0?dp[i-1][j]:0)+(j>0?dp[i][j-1]:0);
}
}
}
System.out.print(dp[x][y]);
}
}