当前位置: 首页 > news >正文

东营建设银行电话号码厦门seo排名

东营建设银行电话号码,厦门seo排名,获取网站漏洞后下一步怎么做,南京移动网站建设引言 之前刚学DFS的时候并不完全理解为什么递归可以一直往下做,后来直到了递归的本质是栈,就想着能不能手写栈来代替递归呢。当时刚学,自己觉得水平不够就搁置了这个想法,今天上数据结构老师正好讲了栈的应用,其中就有…

引言

之前刚学DFS的时候并不完全理解为什么递归可以一直往下做,后来直到了递归的本质是栈,就想着能不能手写栈来代替递归呢。当时刚学,自己觉得水平不够就搁置了这个想法,今天上数据结构老师正好讲了栈的应用,其中就有一个走迷宫问题,于是写下这篇文章,希望能帮助大家更好的理解DFS。

B3625 迷宫寻路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

DFS

#include<bits/stdc++.h>
const int N=110;
char g[N][N];
bool st[N][N];
int n,m;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
int flag=0;
void dfs(int x,int y)
{if(flag) return;if(x==n&&y==m){flag=1;return ;}for(int i=0;i<4;i++){int a=x+dx[i];int b=y+dy[i];if(a<1||b<1||a>n||b>m) continue;if(g[a][b]=='#') continue;if(st[a][b]) continue;st[a][b]=true;dfs(a,b);if(flag) return;st[a][b]=false;}return ;
}
signed main()
{std::cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){std::cin>>g[i][j];}}st[1][1]=true;dfs(1,1);if(!flag) std::cout<<"No"<<'\n';else std::cout<<"Yes"<<'\n';return 0;
}

因为这题数据是100,所以DFS是过不了哒。正解应该是BFS。 

 栈的写法可以直接ac,效率可见一斑。

#include<bits/stdc++.h>
const int N=110;
typedef std::pair<int,int> PII;
char g[N][N];
bool st[N][N];
int n,m;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
int flag=0;void dfs(int x,int y)
{std::stack<PII> stk;st[x][y]=true;stk.push({x,y});while(!stk.empty()){auto t=stk.top();int a=t.first;int b=t.second;if(a==n&&b==m){flag=1;return ;}int ok=0;for(int i=0;i<4;i++){int na=a+dx[i],nb=b+dy[i];if(g[na][nb]=='#') continue;if(st[na][nb]) continue;if(a<1||b<1||a>n||b>m) continue;//这个点可以走ok=1;st[na][nb]=true; stk.push({na,nb});}if(!ok){//不回溯是因为到这一步说明这个点是死胡同 //st[stk.top().first][stk.top().second]=0;stk.pop();}}return ;
}
signed main()
{std::cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){std::cin>>g[i][j];}}dfs(1,1);if(flag) std::cout<<"Yes"<<'\n';else std::cout<<"No"<<'\n';return 0;
}

BFS

宽度优先搜索

#include<bits/stdc++.h>
typedef std::pair<int,int> PII;
const int N=110;
int n,m;
char g[N][N];
int dist[N][N];
PII q[N*N];
int hh=0,tt=-1;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};void bfs(int x,int y)
{memset(dist,-1,sizeof dist);dist[x][y]=0;q[++tt]={x,y};while(hh<=tt){PII t=q[hh++];for(int i=0;i<4;i++){int a=t.first+dx[i];int b=t.second+dy[i];if(dist[a][b]!=-1) continue;if(g[a][b]=='#') continue;if(a<1||b<1||a>n||b>m) continue;q[++tt]={a,b};dist[a][b]=dist[x][y]+1;if(a==n&&b==m) {std::cout<<"Yes";return ;}}}std::cout<<"No";return ;
}
signed main()
{std::cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){std::cin>>g[i][j];} }bfs(1,1);return 0;
}

http://www.khdw.cn/news/40508.html

相关文章:

  • 中国纪检监察报什么级别免费seo网站的工具
  • 淄博做网站的摘抄一篇新闻
  • 仿新浪首页网站模板知名的网络推广
  • 网站rss怎么做南昌百度推广公司
  • 携程网网站规划建设特点网络搜索关键词
  • 北京java网站开发公司企业管理咨询培训
  • 网站换域名图片这么设置站长工具亚洲
  • 做网站要求高吗武汉推广服务
  • 岳阳网站开发公司推荐一份完整的电商运营方案
  • 医院网站建设方案书网络培训学校
  • 做外文网站成人零基础学电脑培训班
  • 遨游网站建设有限公司有什么功能
  • 网站建设管理制度落实百度页面推广
  • 中介做网站的别打电话市场推广方案怎么写
  • wordpress做新闻网站有效的网络推广
  • 拦截网站做跳转怎么把产品推广到各大平台
  • 赣州做网站哪家好网页关键词优化软件
  • 在阿里巴巴上做网站要多少钱百度网站ip地址
  • 公司英文扬州网络优化推广
  • 专门做瓷砖的网站一键清理加速
  • 做一家开发网站的公司简介百度问问首页
  • 吉林省建设安全厅官方网站电商培训大概多少学费
  • wordpress 商店插件长沙seo外包服务
  • 本地专业app开发公司电话站内关键词自然排名优化
  • 修改已经有的网站怎么修改宁波seo网络推广定制
  • 福田网站建设-信科网络什么是百度竞价
  • 免费ppt模板网站哪个好用万秀服务不错的seo推广
  • 十大免费自助建站文件外链生成网站
  • 做网站构思万能引流软件
  • 网站的功能和作用域名是什么意思呢