烟台大学 oj 1006
来源:互联网 发布:js中undefined null 编辑:程序博客网 时间:2024/05/16 00:26
烟台大学 计算机学院 软件工程 王朝#include<iostream>//头文件输入输出流#include<cstdio>//将c中的stdio在c++表示出来#include<cstring>//将c中的string在c++表示出来#include<queue>/*#include<queue> #include<queue>详细用法:定义一个queue的变量 queue<Type> M查看是否为空范例 M.empty() 是的话返回1,不是返回0;从已有元素后面增加元素 M.push()输出现有元素的个数 M.size()显示第一个元素 M.front()显示最后一个元素 M.back()清除第一个元素 M.pop()*/using namespace std;//定义全局空间int dir[4][2] = {1,0,-1,0,0,1,0,-1};//表示移动方向char map[1000][1000];//地图int vis[1000][1000];//用来标记是否走过int sx,sy,px,py,t,n,m,flag,f;struct step{ int x; int y; int s;};void bfs(){ queue<step> q;//直接调用队列 step p;//定义结构体 p.x = sx;//初始坐标表示 p.y = sy; p.s = 0; vis[sx][sy] = 1;//未走过的位置表示为1 q.push(p);//起点入队 while(!q.empty()){//起点入队后开始循环 step p = q.front();//将元素赋值于结构体 if(p.x==px && p.y==py)//找到位置 { flag =1;//计flag为1 if(p.s<=t)//未超天数 { f=1;//计为1 printf("YES\n"); break; } } step v; for(int i=0 ;i<4 ;i++) { v.x = p.x + dir[i][0];//坐标的移动 v.y = p.y + dir[i][1]; if(map[v.x][v.y]=='*')//不合适再返回 {//路不通(有墙壁) continue; } if(v.x>=0 && v.x<n && v.y>=0 && v.y<m && vis[v.x][v.y]==0) { v.s = p.s + 1; q.push(v); vis[v.x][v.y] = 1; } } q.pop(); } if(flag==0||f==0){ //1.flag==0说明无法到达2.flag!=0,f==0,说明可以到达但是时间不够 printf("NO\n"); }}int main(){ while(cin>>m>>n>>t){ if(n==0&&m==0&&t==0){ break; } memset(map,0,sizeof(map)); memset(vis,0,sizeof(vis)); for(int i=0 ;i<n ;i++){ for(int j=0 ;j<m ;j++){ cin>>map[i][j]; if(map[i][j]=='S'){ sx = i; sy = j; } if(map[i][j]=='P'){ px = i; py = j; } } } flag = 0; f = 0; bfs(); }}//着如何表示出来的对于此题的理解我只能到此为止我有一处不理解的是迷宫问题此题应是最优解,
0 0
- 烟台大学 oj 1006
- oj 1045 烟台大学
- 烟台大学ACM OJ之手机后四位尾号问题
- 烟台大学CSDN俱乐部
- 烟台大学官网仿写
- 烟台大学银行开业啦!
- YT02-简单数学课后题-1006 抱歉 -(5.31日-烟台大学ACM预备队解题报告)
- YT04-贪心课后练习-1006—PAINTER(6.14日-烟台大学ACM预备队解题报告)
- CSDN高校俱乐部牵手烟台大学
- 烟台大学讲座:编程学习之路
- 烟台大学举办首届ACM程序设计大赛
- 烟台大学acm暑期集训总结
- 烟台大学体测成绩查询程序
- 数据结构实训 烟台大学导游系统
- 王朝 电子词典163-1烟台大学
- 烟台大学新秀赛 E、F
- 烟台大学官网静态图
- YT02-简单数学课堂题-1006 人见人爱A^B -(5.31日-烟台大学ACM预备队解题报告)
- 虚拟机搭建CDH-第六讲-安装mysql第一种方法(比较简单)
- XTUOJ1264:Partial Sum(前缀和)
- 《PCL点云库学习&VS2010(X64)》Part 37 FLANN——快速最近邻搜索库
- C++primer 第十二章笔记 初稿
- 学习笔记2-- Activity的什么鬼
- 烟台大学 oj 1006
- C#学习笔记 5 运算符
- mysql数据库(七)
- TCP/IP协议要点
- epoll模型之服务器设计
- ArryList的扩容机制
- OpenCV: 常用操作
- 最近
- 夜间模式切换的步骤