Contest1070 - [竞赛班]深搜专题

2023-07-15 12:00:00
3333-07-15 16:00:00
运行中 公开 当前时间:2024-09-20 08:34:50

信息与公告

尽量用深搜广搜做


#include<bits/stdc++.h>
#define ll long long
using namespace std;
//      maze 迷宫的意思,存地图  vis visit 访问,是否访问过这个点 
int n,m,maze[110][110],vis[110][110],ans;
int dx[8]={1,-1,0,0,1,1,-1,-1};//dx[i] 第i个方向行坐标变化
int dy[8]={0,0,1,-1,1,-1,1,-1};//dy[i] 第i个方向列坐标变化
bool in(int x, int y){//是否在界内 
	return 1 <= x && x <= n && 1 <= y && y <= m;
}
int dfs(int x, int y){//从x,y走到相邻点 
	if(到达终点){//先判断结束条件 
		
	}
	for(int i=0;i<4;i++){//上下左右4个方向写4 8个方向写8
		int tx=x+dx[i];
		int ty=y+dy[i];
		if(in(tx,ty)&&!vis[tx][ty]&&其他条件){
			vis[tx][ty]=1;//标记已访问
			dfs(tx,ty);   //递归前往下一个点 
			//上一行dfs执行结束后 从下一个点回来 
			vis[tx][ty]=0;//回头时可能需要撤销标记
		}
	}
//	return ;//这里返回的是这条路走不通时  这条路指的是从(x,y)出发往上下左右走
}
int main(){
	cin>>n>>m;//n行,m列   n行n列时这样写 cin>>n; m=n;
	for(int i=1;i<=n;i++){//地图模拟类的下标都从1开始,防越界 
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	for(){
		for(){
			//找起点,随后开始搜索
			//cout<<dfs(i,j);//可能需要输出,可能只是统计 
		}
	}
	cout<<ans;//统计时 用ans统计
	return 0;
}