//P177 test 6-4 UVa439 #include<cstdio> #include<cstring> #include<queue> using namespace std; , , , , -, -, -, -}; //转向控制 , -, , -, , -, , -}; ][]; //记录步数 void bfs(int x,int y,int ex,int ey) { queue<int> a, b; a.push(x); b.push(y); int px, py; ; while(!a.empty()) { px = a.front(); a.pop(); py = b.front(); b.pop(); ; i < ; i++) { && px + turnx[i] <= && py + turny[i] > && py + turny[i] <= ) { step[px + turnx[i]][py + turny[i]] = step[px][py] + ; b.push(py + turny[i]); a.push(px + turnx[i]); if(px + turnx[i] == ex && py + turny[i] == ey) { kase = ; break; } } } if(kase)break; } } int main() { int x, ex, y, ey; ],s2[]; ) { x = s1[] - ; y = s1[] - ' ; ex = s2[] - ; ey = s2[] - ' ; memset(step, , sizeof(step)); bfs(x,y,ex,ey); printf("%d\n", step[ex][ey]); } ; }