A. Shortest path of the king
来源:互联网 发布:淘宝导购平台 编辑:程序博客网 时间:2024/06/05 02:19
The king is left alone on the chessboard. In spite of this loneliness, he doesn't lose heart, because he has business of national importance. For example, he has to pay an official visit to squaret. As the king is not in habit of wasting his time, he wants to get from his current positions to square t in the least number of moves. Help him to do this.
In one move the king can get to the square that has a common side or a common vertex with the square the king is currently in (generally there are 8 different squares he can move to).
The first line contains the chessboard coordinates of square s, the second line — of square t.
Chessboard coordinates consist of two characters, the first one is a lowercase Latin letter (froma to h), the second one is a digit from1 to 8.
In the first line print n — minimum number of the king's moves. Then inn lines print the moves themselves. Each move is described with one of the 8:L, R,U, D,LU, LD,RU or RD.
L, R,U, D stand respectively for moves left, right, up and down (according to the picture), and 2-letter combinations stand for diagonal moves. If the answer is not unique, print any of them.
a8h1
7RDRDRDRDRDRDRD
//x1,y1为原点 进行四个方向判断 注意:两点之间直线最短。#include<iostream>#include<cstdio>#include<string.h>using namespace std;char x1,x2;int y1,y2;string an[20];int main(){ int ans; while(scanf("%c%d",&x1,&y1)!=EOF) { getchar(); scanf("%c%d",&x2,&y2); getchar(); x1-='a'+1; x2-='a'+1; ans=-1; //讨论四种情况 // 右上部分 if(x2>=x1&&y2>=y1) { if(y1!=y2&&x1!=x2) { while(y1!=y2&&x1!=x2) { ++ans; x1++; y1++; an[ans]="RU"; } } if(y1==y2&&x1!=x2) { while(x1!=x2) { ++ans; x1++; an[ans]="R"; } } if(y1!=y2&&x1==x2) { while(y1!=y2) { ++ans; y1++; an[ans]="U"; } } } // 左上部分 else if(x2<=x1&&y2>=y1) { if(y1!=y2&&x1!=x2) { while(y1!=y2&&x1!=x2) { ++ans; x1--; y1++; an[ans]="LU"; } } if(y1==y2&&x1!=x2) { while(x1!=x2) { ++ans; x1--; an[ans]="L"; } } if(y1!=y2&&x1==x2) { while(y1!=y2) { ++ans; y1++; an[ans]="U"; } } } //左下部分 else if(x2<=x1&&y2<=y1) { if(y1!=y2&&x1!=x2) { while(y1!=y2&&x1!=x2) { ++ans; x1--; y1--; an[ans]="LD"; } } if(y1==y2&&x1!=x2) { while(x1!=x2) { ++ans; x1--; an[ans]="L"; } } if(y1!=y2&&x1==x2) { while(y1!=y2) { ++ans; y1--; an[ans]="D"; } } } //右下部分 else if(x2>=x1&&y2<=y1) { if(y1!=y2&&x1!=x2) { while(y1!=y2&&x1!=x2) { ++ans; x1++; y1--; an[ans]="RD"; } } if(y1==y2&&x1!=x2) { while(x1!=x2) { ++ans; x1++; an[ans]="R"; } } if(y1!=y2&&x1==x2) { while(y1!=y2) { ++ans; y1--; an[ans]="D"; } } } printf("%d\n",ans+1); for(int i=0; i<=ans; i++) { printf("%s\n",an[i].c_str()); } } return 0;}
- A - Shortest path of the king
- A. Shortest path of the king
- A. Shortest path of the king
- 3A - Shortest path of the king
- Shortest path of the king
- Shortest path of the king
- CF 3A Shortest path of the king
- Shortest path of the king(比赛2.A)
- coderforce 3A-Shortest path of the king
- codeforces 3A - Shortest path of the king
- Codeforces 3A Shortest path of the king BFS
- code forces 3A Shortest path of the king
- codeforces 3A Shortest path of the king
- 【pair_简单贪心】#3 A. Shortest path of the king
- Codeforces 3A Shortest Path of the King
- Codeforces Round #3A. Shortest path of the king
- Codeforces Beta Round #3 A. Shortest path of the king
- Codefoeces 3A. Shortest path of the king
- nbu 2427 Pigs
- 数据结构之哈希表(hash)代码
- MATLAB时域信号的平移
- Java API实现国际化资源文件
- 关于Unicode字符集
- A. Shortest path of the king
- 树权-最小生成树-叉树
- 深入浅出DDoS攻击防御应对篇
- siverlight的定时器
- DLL搜索顺序问题详解
- AnyChart应用教程大全
- 21.Java序列化【草案三】
- oracle 11 导入到 10
- jsp动态菜单+数据库读取菜单url和菜单名称