P1443为何tle
查看原帖
P1443为何tle
515825
zhanghaiyu楼主2022/1/21 15:56
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y;
int dx[8]={2,-2,2,-2,-1,1,-1,1};
int dy[8]={1,1,-1,-1,2,2,-2,-2};
int ans[401][401];
int c(int a,int b) 
{
    if(a<1||a>n||b<1||b>m)
        return 0;
    return 1;
}
void dfs(int a,int b,int sum)
{
    int nx,ny;
    ans[a][b]=sum;
    for(int i=0;i<8;i++)
    {
        nx=a+dx[i];
        ny=b+dy[i];

        if(c(nx,ny)&&(sum+1<ans[nx][ny]||ans[nx][ny]==-1))
            dfs(nx,ny,sum+1);
    }
}
int main()
{
    scanf("%d%d",&n,&m);
scanf("%d%d",&x,&y);
    
    memset(ans,-1,sizeof(ans));
    dfs(x,y,0);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
            printf("%-5d",ans[i][j]);
        cout<<endl;
    }
    return 0;
}

为何tle 求大佬帮忙

2022/1/21 15:56
加载中...