求调,怎么才能不超时
查看原帖
求调,怎么才能不超时
1353481
zunber_small楼主2025/1/13 10:05

我的代码2个t 不知道怎么优化 求大佬指点

#include<bits/stdc++.h>
using namespace std;
int a[1000][1000];
int dx[8] = {-2,-2,-1,1,2,2,-1,1};
int dy[8] = {-1,1,-2,-2,-1,1,2,2};
int sum;
int n,m,mx,my;
void dfs(int x,int y)
{
	int nx,ny;
	nx = x+1;
	ny = y;
	if(nx >= 0 && nx <= n && ny >= 0 && ny <= m && a[nx][ny]!='1')
	{
		dfs(nx,ny);
	}
	nx = x;
	ny = y+1;
	if(nx >= 0 && nx <= n && ny >= 0 && ny <= m && a[nx][ny]!='1')
	{
		dfs(nx,ny);
	}
	if(x == n && y == m)
	{
		sum ++;
	}
}
int main()
{
	cin>>n>>m>>mx>>my;
	for(int i=0;i<=7;i++)
	{
		if(mx+dx[i] >= 0 && mx+dx[i] <= n && my+dy[i] >= 0 && my+dy[i] <= m)
		{
				a[mx+dx[i]][my+dy[i]] = '1';
		}
	}
	a[mx][my] = '1';
	dfs(0,0);
	cout<<sum;
	return 0;
}
2025/1/13 10:05
加载中...