NYOJ 58 最少步数
2016-08-01 14:59
239 查看
比较简单的深搜题,代码如下:
#include<stdio.h> #include<string.h> int map[9][9]={ {1,1,1,1,1,1,1,1,1},{1,0,0,1,0,0,1,0,1},{1,0,0,1,1,0,0,0,1}, {1,0,1,0,1,1,0,1,1},{1,0,0,0,0,1,0,0,1},{1,1,0,1,0,1,0,0,1}, {1,1,0,1,0,1,0,0,1},{1,1,0,1,0,0,0,0,1},{1,1,1,1,1,1,1,1,1}}; int c,d; int min; void dfs(int x,int y,int step) { int nx[4]={0,1,0,-1}; int ny[4]={1,0,-1,0}; if(x==c&&y==d) { if(step<min) min=step; return; } int tx,ty; for(int i=0;i<4;i++) { //上下左右四个方向 tx=x+nx[i]; ty=y+ny[i]; if(tx>=0&&ty>=0&&tx<9&&ty<9&&!map[tx][ty]) { map[tx][ty]=1; dfs(tx,ty,step+1); map[tx][ty]=0; } } } int main() { int T; scanf("%d",&T); while(T--) { int a,b; scanf("%d%d%d%d",&a,&b,&c,&d); min=0x3f3f3f3f; dfs(a,b,0); printf("%d\n",min); } return 0; }
相关文章推荐
- nyoj--58--最少步数(bfs&dfs)
- NYOJ 58-最少步数【DFS】
- nyoj-题目58-最少步数【DFS】
- nyoj--58--最少步数
- NYOJ 题目58 最少步数(dfs)
- NYOJ 题目58 最少步数 (简单BFS)
- 最少步数(NYOJ 58)
- NYOJ 58--最少步数【DFS】
- nyoj 58 最少步骤
- nyoj-58-最少步数
- NYOJ 58 最少步数(dfs)
- NYOJ58-最少步数
- NYOJ 58 最少步数
- NYOJ_58 最少步数
- NYOJ 58 最少步数(dfs或者bfs)
- NYOJ 58 最少步数 (DFS)
- NYOJ 58 最少步数(BFS)
- NYOJ 58 最少步数
- nyoj 58 最少步数 (bfs)
- nyoj 58 最少步数