求助各路大神,一直在WA
查看原帖
求助各路大神,一直在WA
521908
Jjy20050323楼主2023/8/31 22:52
#include <stdio.h>
int m,n;//定义范围,也是目的地
int p,q;//马的坐标
int arr[21][21];
int s[21][21];
void conpoint(int p,int q)
{
    for (int i=1;i<=n;i++)
    {
        for (int j=1;j<=m;j++)
        {
            if ((p-i)*(p-i)+(q-j)*(q-j) == 5)
            {
                s[i][j] = 0; //马拦住的点
            }
        }
    }
    return;
}

void judge(int down,int right)//判断路线
{
    for (down=1;down<=n;down++)
    {
        for (right=1;right<=m;right++)
        {
            if(right==1 && down==1)
            {
                arr[down][right]=1;
            }
            else if (s[down][right])
            {
                arr[down][right]=arr[down-1][right]+arr[down][right-1];
            }
            else
            {
                arr[down][right]=0;
            }
        }
    }
    return ;
}
int main (viod)
{
   scanf("%d %d %d %d",&n,&m,&p,&q);
   n++;m++;p++;q++;//将(0,0)改为(1,1),拓展范围
   s[p][q]=0;//马自己所在的点
   arr[1][1]=1;
   for (int i=1;i<=n;i++)
   {
       for (int j=1;j<=m;j++)
       {
           s[i][j]=1;//将值全改为1,供judge函数判断
       }
   }
   conpoint(p,q);
   int down=1;
   int right=1;
   int count=0;
   judge(down,right);
   count=arr[n][m];
   printf("%d\n",count);
   return 0;
}

2023/8/31 22:52
加载中...