0
已解决
范浩轩
资深守护
资深守护
样例都过不去......
#include<iostream>
using namespace std;
int n,m,x,y;
int f[15][15];
int dir[9][2]={{0,0},{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1}};
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];
if(dx>=0&&dx<=n&&dy>=0&&dy<=m)
{
vis[dx][dy]=true;
}
}
if(vis[0][0]==1)
{
cout<<0;
return 0;
}
f[0][0]=1;
for(int i=0;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
if(i==0&&j==0||vis[i][j]==1)
{
continue;
}
if(i==0)
{
for(int k=0;k<j;k++)
{
f[i][j]+=f[i][k];
}
}
else if(j==0)
{
for(int k=0;k<i;k++)
{
f[i][j]+=f[k][j];
}
}
}
}
cout<<f[n][m];
return 0;
}
范浩轩在2023-10-24 12:15:46追加了内容
ding