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

山东网站制作网站用图怎么做文件小质量高

山东网站制作,网站用图怎么做文件小质量高,简述网站开发流程,wordpress建站云平台涉及知识点#xff1a;求迷宫能否到达终点的#xff0c;而不是求路径数的#xff0c;用bfs时可以不用重置状态数组#xff08;回溯#xff09;。 题目描述 给你一个n*m的迷宫#xff0c;这个迷宫中有以下几个标识#xff1a; s代表起点 t代表终点 x代表障碍物 .代…涉及知识点求迷宫能否到达终点的而不是求路径数的用bfs时可以不用重置状态数组回溯。 题目描述 给你一个n*m的迷宫这个迷宫中有以下几个标识 s代表起点 t代表终点 x代表障碍物 .代表空地 现在你们涵哥想知道能不能从起点走到终点不碰到障碍物只能上下左右进行移动并且不能移动到已经移动过的点。 输入描述: 输入第一行一个整数T(1T10) 接下来有T组测试数据对于每一组测试数据第一行输入2个数n和m(1n,m500) 接下来n行每行m个字符代表这个迷宫每个字符都是上面4个中的一种 数据保证只有一个起点和一个终点 输出描述: 对于每一组测试数据如果可以的话输出YES不可以的话输出NO 示例1 输入 复制1 3 5 s...x x...x ...tx 1 3 5 s...x x...x ...tx 输出 复制YES YES 想法 用dfs求结果超时了。毕竟都500层了…… 代码 #includebits/stdc.h using namespace std; int n,m; int ans; char mg[510][510]; int a,b;//终点 int dx[]{0,0,1,-1}; int dy[]{1,-1,0,0}; int st[510][510]; void dfs(int x,int y){     for(int i0;i4;i){         int xxdx[i]x;         int yydy[i]y;         if(xx1||yy1||xxn||yym) continue;         if(mg[xx][yy]x) continue;         if(st[xx][yy]) continue;         if(xxayyb) {ans; return;}         st[xx][yy]1;         dfs(xx,yy);         st[xx][yy]0;     } } int main(){     int t;     cint;     while(t--){ memset(st,0,sizeof(st));         ans0;         cinnm;         int x,y;         for(int i1;in;i){             for(int j1;jm;j){                 cinmg[i][j];                 if(mg[i][j]s) { xi,yj;}                 if(mg[i][j]t) { ai,bj;}             }         }         dfs(x,y);         if(ans) coutYESendl;         else coutNOendl;     }     return 0 ; } 想法 今天看网课讲到bfs的时间复杂度要比dfs小其实是回溯了的dfs时间复杂度才比bfs大很多所以就试试bfs的写法,过了。还学到了一个小技巧队列中的坐标的存储可以不用数对pair用一个数值表示。 代码 #includebits/stdc.h using namespace std; int n,m; int ans; char mg[510][510]; int dx[]{0,0,1,-1}; int dy[]{1,-1,0,0}; int st[510][510]; queue int q; void bfs(int x,int y){     q.push(x*my);     while(!q.empty()){         int aq.front()/m;         int bq.front()%m;         q.pop();         for(int i0;i4;i){             int xxadx[i];             int yybdy[i];             if(mg[xx][yy]x) continue;             if(mg[xx][yy]t) { ans1;break;}//到终点             if(st[xx][yy]) continue;             if(xxn||xx0||yy0||yym) continue;             st[xx][yy]1;             q.push(xx*myy);         }         if(ans1) return ;     } } int main(){     int t;     cint;     while(t--){         memset(st,0,sizeof(st));         ans0;         cinnm;         int x,y;         for(int i0;in;i){             for(int j0;jm;j){                 cinmg[i][j];                 if(mg[i][j]s) { xi,yj;}             }         }         st[x][y]1;         bfs(x,y);         if(ans) coutYESendl;         else coutNOendl;     }     return 0 ; } 事情到这并没有结束我写完就去翻了一下别人的题解发现其实也可以用dfs写出来我们不需要具体路径只需要知道起点终点是否连通我本来想用连通块写的但感觉还是会超时就否决了因此本题不用回溯也不可以回溯回溯会超时。这么做时间复杂度和上一个bfs的时一样的就是全部格子都搜了一遍时间复杂度为On*m。 代码 #includebits/stdc.h using namespace std; int n,m; int ans; char mg[510][510]; int a,b;//终点 int dx[]{0,0,1,-1}; int dy[]{1,-1,0,0}; int st[510][510]; void dfs(int x,int y){     for(int i0;i4;i){         int xxdx[i]x;         int yydy[i]y;         if(xx1||yy1||xxn||yym) continue;         if(mg[xx][yy]x) continue;         if(st[xx][yy]) continue;         if(xxayyb) {ans; return;}         st[xx][yy]1;         dfs(xx,yy);         //st[xx][yy]0;     } } int main(){     int t;     cint;     while(t--){ memset(st,0,sizeof(st));         ans0;         cinnm;         int x,y;         for(int i1;in;i){             for(int j1;jm;j){                 cinmg[i][j];                 if(mg[i][j]s) { xi,yj;}                 if(mg[i][j]t) { ai,bj;}             }         }         dfs(x,y);         if(ans) coutYESendl;         else coutNOendl;     }     return 0 ; } 嗐其实还是感觉怪怪的再想想吧。
http://www.w-s-a.com/news/49517/

相关文章:

  • 网站建设实训记录企业网站建设运营
  • 视频网站文案住房和城乡建设部门
  • 汕头网站排名推广新余门户网站开发
  • 湖南智能网站建设哪家好wordpressμ
  • 公司网站备案必须是企业信息么睢宁县凌城做网站的
  • 上海网站建设公司 珍岛宁波免费自助建站模板
  • 南昌知名的网站建设公司南京网站开发选南京乐识赞
  • 外贸网站建设 深圳seo怎么提升关键词的排名
  • 网站推广效果的评价google关键词
  • 模板网站建站哪家好做微信充值网站
  • 抽奖的网站怎么做的广州小程序定制开发
  • 网站的文件夹建设企业网站公积金
  • 做网站的的价位网站建设 考试题目
  • 深圳比邻网站建设北京优化服务
  • 菏泽网站建设哪家好电子商务网络安全
  • 仿一个网站广州网站建设正规公司
  • 网站建设 目的seo网站关键词排名快速
  • 什么叫做响应式网站自媒体全平台发布
  • 企业网站 案例哪里需要人做钓鱼网站
  • 厚街东莞网站建设网站开发者调试模式
  • 网站推广营销联系方式wordpress adminlte
  • 哪些网站可以做文字链广告卖水果网站建设的策划书
  • 雕刻业务网站怎么做企业qq官网
  • 新华书店的做的数字阅读网站wordpress编辑器格式
  • jq做6个网站做什么好广西临桂建设局网站
  • 网站新闻图片尺寸南京网站设计公司
  • 重庆seo建站网站服务器 安全
  • 咸宁做网站的公司桂林网站建设兼职
  • 教做网站网站开发行业分析
  • 忻州网站建设培训友情链接交换形式有哪些