ZWK so lazy
来源:互联网 发布:淘宝摄影需要什么器材 编辑:程序博客网 时间:2024/05/29 17:39
Description:
ZWK很懒每次从某个点到哪个点都会去计算下步数,想知道最短需要多少步,简单的来说就是在一个N*M的矩阵,用‘S’表示起始点,‘E’表示终点,’.‘表示可以走的路,'#'表示障碍,求S到E的最短步数,EOF表示结束
Input:
第一行输入n,m
然后输入N*M矩阵
Output:
输出最短的步数
Sample Input:
3 3S.......E
Sample Output:
4// ZWK SO LAZY.cpp : 定义控制台应用程序的入口点。//#include<stdlib.h>#include<math.h>#include<stdio.h>#define N 105#define min(x,y) (x<y?x:y)char map[N][N];int vis[N][N];int n,m,minz=999999;int step[4][2]={{1,0},{-1,0},{0,1},{0,-1}};int check(int x,int y){if((x>=0&&x<n)&&(y>=0&&y<m))return 1;return 0;}int DFS(int x,int y,int dp){int i,j;if(map[x][y]=='E'){minz=min(minz,dp);return 1;}for(i=0;i<4;i++){int tmpx,tmpy;tmpx=x+step[i][0];tmpy=y+step[i][1];if(map[tmpx][tmpy]=='#')continue;if(check(x,y)==1&&vis[tmpx][tmpy]==0){vis[tmpx][tmpy]=1;DFS(tmpx,tmpy,dp+1);vis[tmpx][tmpy]=0;}}return 0;}int main(){int x,y,i,j;while(scanf("%d%d",&n,&m)!=EOF){x=y=minz=999999;for(i=0;i<n;i++)scanf("%s",map[i]);for(i=0;i<n;i++)for(j=0;j<m;j++)vis[i][j]=0;for(i=0;i<n;i++){if(x!=minz&&y!=minz)break;for(j=0;j<m;j++){if(map[i][j]=='S'){x=i,y=j;break;}}}DFS(x,y,0);if(minz==999999)printf("%d\n",0);elseprintf("%d\n",minz);}return 0;}
0 0
- ZWK so lazy
- lazy
- lazy
- HDU 1166 敌兵布阵 zwk线段树
- so
- so...
- so
- So.
- so
- so
- Hibernate Lazy
- lazy TLB
- Lazy Monday!
- Lazy me
- lazy总结
- hibernate---->lazy
- Lazy initialization
- lazy load
- jquery实现网页自动添加必填项图标和日期自动填充
- c语言 文件操作
- MapReduce编程
- Spark调研笔记第7篇 - 应用实战: 如何利用Spark集群计算物品相似度
- _itoa atoi、atof、itoa、itow _itoa_s 类型转换使用说明
- ZWK so lazy
- HTML特殊字符过滤器
- 几种常见的动画
- 一行代码搞定所有屏幕适配
- Java引用传递和值传递
- postgres 引起oom问题的 explain 分析。
- base64
- Spring+Mybatis 多数据源配置
- SolrCloud Wiki翻译(1) Getting Started with SolrCloud