作业比赛编号 : 1073 - [禁赛班]深搜专题
密码:深搜的函数名称是什么,密码就是什么
尽量用深搜做#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; }
比赛尚未开始或私有,不能查看题目。