50分,求助大佬(qwq)
查看原帖
50分,求助大佬(qwq)
189849
不睡觉的引号楼主2020/11/1 19:11
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<cstring> 
using namespace std;
const int next_x[4]={0,0,-1,1};
const int next_y[4]={-1,1,0,0};
int n,m,t,fx,fy,sx,sy,v[6][6],cnt=0;//cnt来计数方案数 
void dfs(int x,int y)
{
	if(x==fx&&y==fy)
	{
		cnt++;
		return ;
	 } 
else{	for(int i=0;i<4;i++)
	{
		int dx=x+next_x[i];
		int dy=y+next_y[i];
		if(dx<1||dy<1||dy>m||dx>n||v[dx][dy]==1) continue ;
		if(v[dx][dy]==0)
		{		v[dx][dy]=1;
			dfs(dx,dy);
			v[dx][dy]=0;
		}
	 } 
	 } 
}
int main()
{
	cin>>n>>m>>t;
	memset(v,0,sizeof(v));
		for(int i=1;i<=t;i++)
	{
		int oo,ii;
		cin>>oo>>ii;
		v[oo][ii]=1; 
	}
	cin>>sx>>sy>>fx>>fy;
	v[sx][sy]=1; 
	dfs(sx,sy);
	cout<<cnt;
	return 0;
 } 
2020/11/1 19:11
加载中...