请问,这个代码的意思是什么,刚刚学不太会
  • 板块灌水区
  • 楼主cxsxlg
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/12/4 22:06
  • 上次更新2023/11/3 22:54:09
查看原帖
请问,这个代码的意思是什么,刚刚学不太会
538258
cxsxlg楼主2021/12/4 22:06
#include<bits/stdc++.h>
using namespace std;
int z[109][109];
int xh[8]={-2,-2,2,2,-1,1,-1,1};
int yl[8]={-1,1,-1,1,-2,-2,2,2};
int s,m,n,x,y,zff=0;
void dfs(int x,int y)
{
	int hh,ll,ff=0;
	for(int i=0;i<8;i++)
	{
		hh=x+xh[i];
		ll=y+yl[i];
		if(hh>=1&&ll>=1&&hh<=m&&ll<=n&&z[hh][ll]==0)
		{
			z[hh][ll]=1;
			dfs(hh,ll);
			z[hh][ll]=0;
			ff++;
		}
	}
	if(ff==0)
	{
		for(int i=1;i<=m;i++)
		{
			for(int o=1;o<=n;o++)
			{
				if(z[i][o]==0)
				return;
			}
		}
		zff++;
	}
}
int main()
{
	cin>>s;
	for(int i=1;i<=s;i++)
	{
		cin>>m>>n>>x>>y;
		x++;
		y++;
		memset(z,0,sizeof(z));
		z[x][y]=1;
		dfs(x,y);
		cout<<zff<<endl;
		zff=0;
	}
	return 0;
}

在zff++那里,请问一下它加完会做什么,void是什么函数,它是会一直循环吗?又或者它在代码结束后会回溯呢?

题目是noi马走日,洛谷我找不到,请大家帮忙解答,谢谢!

2021/12/4 22:06
加载中...