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

怎样做好网站百度关键词搜索查询

怎样做好网站,百度关键词搜索查询,wordpress5更换后台主题,wordpress 培训模板引言 之前刚学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/2847.html

相关文章:

  • 工程公司年终工作总结苏州seo安严博客
  • 个人网站开发的现状百度助手免费下载
  • 网站建设和维护及云计算网络营销的优势
  • 软件测试40岁以后出路北京网站营销seo方案
  • 昆山做网站的kamese株洲网页设计
  • 企业网站建设套餐惠州市seo广告优化营销工具
  • 网站一级页面二级页面怎么做网络营销专员的就业前景
  • 互动科技网站建设aso苹果关键词优化
  • 怎么用视频做网站背景谷歌商店paypal官网下载
  • 安徽设计网站建设百度公司招聘信息
  • 备案个人可以做视频网站seopc流量排名官网
  • 所见即所得的网站开发软件深圳做网站公司
  • 千博企业网站系统网页查询
  • dede做网站济南最新消息
  • 做网站南宁如何做好口碑营销
  • 模版网站后期可以更换图片吗网络优化器免费
  • 网站委托建设运营协议seo的优化技巧有哪些
  • 怎么创建一个公司网站网站网络排名优化方法
  • 怎么做网上直营店网站网站是怎么建立起来的
  • 招商网站建设解决方案河南网站推广
  • 自助商城网站建设查权重的软件
  • c 网站开发框架有搜索网站有哪几个
  • 直播交友app开发厦门seo总部电话
  • 做网站编写seo快速排名软件方案
  • 推广网站怎样做百度排名怎么做
  • 网站建设百度优化北京seo课程培训
  • dz论坛如何做网站地图线在成都网站推广公司
  • 网站内容建设和管理系统营销必备十大软件
  • 冷色网站百度网盘电脑版
  • 统计网站流量的网站网址服务器查询