#include<stdio.h> #define maxv 9 int mg[maxv][maxv]= { 1,1,1,1,1,1,1,1,1,//0 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,//3,1 1,0,0,0,0,1,0,0,1, 1,1,0,1,0,1,0,0,1,//5,7 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 num,c,d,min; void dfs(int x,int y) { if(!mg[x][y]) { num++; if(x==c&&y==d) if(min>num) min=num; mg[x][y]=-1; dfs(x+1,y); dfs(x-1,y); dfs(x,y-1); dfs(x,y+1); mg[x][y]=0; num--; } } int main() { int a,b,n; scanf("%d",&n); while(n--) { min=81; num=-1; scanf("%d%d%d%d",&a,&b,&c,&d); dfs(a,b); printf("%d\n",min); } }
南阳oj 最小步数
猜你喜欢
转载自www.cnblogs.com/shenyuling/p/9832244.html
今日推荐
周排行