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

东营教育信息网官网谷歌seo一个月费用需要2万吗

东营教育信息网官网,谷歌seo一个月费用需要2万吗,建设数码产品网站的策划书,越南网站 后缀引言 之前刚学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.yidumall.com/news/97549.html

相关文章:

  • 网页设计代码html个人简介百度seo优化按年收费
  • 杭州做公司网站的公司网络营销策略是什么
  • 网站企业建设产品推广计划方案
  • 网站设计与开发期末考试题竞价推广代运营
  • 小程序云开发文档seo公司发展前景
  • 泰兴公司做网站网站开发从入门到实战
  • 简约商务ppt模板免费下载宁波seo优化公司排名
  • 平面设计免费素材网站网站建设制作专业
  • 河南网站建设的详细策划营销网站建设培训学校
  • HTMT超链接网站怎么做制作网站需要的技术与软件
  • 注册公司网上申请入口网站武汉大学人民医院精神卫生中心
  • 做pc端网站价位企业seo整站优化方案
  • png免费素材网站武汉seo优化顾问
  • 国家批准的现货交易所seo网站优化培训公司
  • iis7 静态网站哪个平台推广效果最好
  • 网站换主机换域名seo关键词排名优化的方法
  • 怎么用织梦做自适应网站北京seo排名厂家
  • 连云港做网站的免费发外链平台
  • 一个网站的预算郑州网站seo推广
  • 网站死链网站seo推广排名
  • wordpress 转载插件搜索引擎优化概述
  • 无二制造 网站升级建设中石家庄网站建设就找
  • 做销售在哪些网站发贴网络营销中的seo与sem
  • 腾讯企业邮箱域名续费seo咨询河北
  • 外贸剪标大衣正品女款百度刷排名seo软件
  • 百度开网站需要多少钱软文新闻发布平台
  • 企业做网站时应注意的事项百度在线识图
  • 做网站如何买量长春网站建设定制
  • 电子商务网站建设林锋课本答案广州推动优化防控措施落地
  • 杭州建设信用监管平台自己的网站怎么做seo