洛谷1002深搜dfs

2022-06-28 18:36:32 浏览数 (1)

本文最后更新于 1170 天前,其中的信息可能已经有所发展或是发生改变。

代码语言:javascript复制
// 洛谷1002深搜dfs.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
using namespace std;
#define N 25
int s[N][N];
int x1, x2, h1, h2;
long sum = 0;
void creat(int h1,int h2)
{
	for (int i = 0; i < N; i  )
	{
		for (int j = 0; j < N; j  )
		{
			if ((i == (h1 - 2) && j == (h2 - 1))
				|| (i == (h1 - 2) && j == (h2   1))
				|| (i == (h1 - 1) && j == (h2 - 2))
				|| (i == (h1 - 1) && j == (h2   2))
				|| (i == (h1   1) && j == (h2 - 2))
				|| (i == (h1   1) && j == (h2   2))
				|| (i == (h1   2) && j == (h2 - 1))
				|| (i == (h1   2) && j == (h2   1))
				|| (i == h1 && j == h2 )
				)
				s[i][j] = 1;
			else
				s[i][j] = 0;
		}
	}
	
}

void dsf(int i, int j)
{
	if (i == x1&&j == x2)
	{
		sum  ;
		cout << sum << endl;
		return;
	}
		
	if (i >= 0&&i<=x1&&j>=0&&j<=x2&&s[i][j]==0)
	{
		dsf(i   1,j);
		dsf(i, j   1);
	}

	else
		return;
}
int main()
{	
	cin >> x1 >> x2 >> h1 >> h2;
	creat(h1, h2);
	
	dsf(0, 0);
	cout << sum;
	return 0;
}

Post Views: 169

0 人点赞