大佬们,这个代码里面的sc函数在运行的时候,里面那句
if(i==1 or j==1)
{
a[i][j]=1;
}
会不知道为什么把m变量也赋值掉,感觉像是指针索引过去了,怎么解决,在线等
#include<bits/stdc++.h>
using namespace std;
long long a[21][21],n,m,x,y;
int j;
void pd(int x,int y)
{
int df[8][8]={{-2,-1},{-2,1},{2,-1},{2,1},
{-1,2},{-1,-2},{1,2},{1,-2}};
int x1,y1;
for(int i=0;i<=7;i++)
{
x1=x+df[i][0];
y1=y+df[i][1];
if(x1>=0 and y1>=0)
{
a[x1][y1]=-1;
}
}
return;
}
void sc(int j)
{
int i;
for(i=1;i<=n;i++)
{
if(a[i][j]==-1)
{
a[i][j]=0;
}
else
{
if(i==1 or j==1)
{
a[i][j]=1;
}
else
{
a[i][j]=a[i-1][j]+a[i][j-1];
}
}
}
}
int main()
{
cin>>n>>m;
n++;m++;
cin>>x>>y;
x++;y++;
pd(x,y);
a[x][y]=-1;
a[1][1]=1;
for(j=1;j<=m;j++)
{
sc(j);
}
cout<<a[n][m]<<endl;
return 0;
}