求助!只得了30分
  • 板块P1605 迷宫
  • 楼主pengqiushi
  • 当前回复10
  • 已保存回复10
  • 发布时间2022/10/5 21:28
  • 上次更新2023/10/27 08:36:46
查看原帖
求助!只得了30分
735164
pengqiushi楼主2022/10/5 21:28

代码如下:

#include<iostream>
using namespace std;
int a[6][6];
int n,m,zx,zy;
void dfs(int x,int y,int ma,int f){
	//cout<<x<<" "<<y<<" "<<ma<<endl;
	a[x][y]+=ma;
	if(x==zx&&y==zy)
		return;
	if(a[x+1][y]!=-1&&f!=2&&x<n)
		dfs(x+1,y,ma,8);
	if(a[x-1][y]!=-1&&f!=8&&x>1)
		dfs(x-1,y,ma,2);
	if(a[x][y+1]!=-1&&f!=4&&y<m)
		dfs(x,y+1,ma,6);
	if(a[x][y-1]!=-1&&f!=6&&y>1)
		dfs(x,y-1,ma,4);
	return;
}
int main()
{
	int t;
	cin>>n>>m>>t;
	int x,y;
	int qx,qy;
	cin>>qx>>qy>>zx>>zy;
	for(int i=1; i<=t; i++){
		cin>>x>>y;
		a[x][y]=-1;
	}
	dfs(qx,qy,1,0);
	cout<<a[zx][zy];
	return 0;
}

评测记录

帮助者+1关注

2022/10/5 21:28
加载中...