Shortest path of the king

CodeForces - 3A

棋盘上的国王被单独放置。尽管他是孤独的,但并未伤心,因为他有事关全局的重要性。例如,他必须正式访问方格 t 。由于国王不习惯于浪费自己的时间,因此他想用最小的移动步数,从自己的当前位置 s 抵达方格 t 。请帮助他达成这一目标。

每次移动,国王可以从当前的方格开始,抵达与之具有公共边或公共顶点的某个方格 (通常他可以走向 8 个不同的方格)。

输入

第一行包含了方格 s 所在的棋盘坐标,第二行 — 方格 t 。

棋盘坐标包含两个字符,第一个字符是小写的拉丁字母 (从 a 到 h),第二个字符是介于 1 到 8 之间的数字。

输出

在第一行中,打印 n — 国王移动的最少步数。然后,在 n 行中打印相应的移动步骤。每次移动的描述,使用以下 8 种方式中的一种:L, R, U, D, LU, LD, RU 或 RD 。

L, R, U, D 相应表示左移、右移、上移和下移 (依据图片),且两字母组合表示斜对角移动。如果答案不唯一,打印它们中的任何一种。

示例

输入
a8h1

输出
7RDRDRDRDRDRDRD

sol:暴力if判断8个方向即可Ps:代码非常丑丑丑丑丑

#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{ll s=0;bool f=0;char ch=' ';while(!isdigit(ch)){f|=(ch=='-'); ch=getchar();}while(isdigit(ch)){s=(s<<3)+(s<<1)+(ch^48); ch=getchar();}return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{if(x<0){putchar('-'); x=-x;}if(x<10){putchar(x+'0');    return;}write(x/10);putchar((x%10)+'0');return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
int main()
{int x1,y1,x2,y2;char ch=' ';while(!islower(ch)) ch=getchar();x1=ch-'a'+1;R(y1);ch=' ';while(!islower(ch)) ch=getchar();x2=ch-'a'+1;R(y2);Wl(max(abs(x1-x2),abs(y1-y2)));if(x1<=x2){if(y1<=y2){if(x2-x1>y2-y1){while(y2-y1>0) {puts("RU"); x1++; y1++;}while(x2-x1>0) {puts("R"); x1++;}}else{while(x2-x1>0) {puts("RU"); x1++; y1++;}while(y2-y1>0) {puts("U"); y1++;}}}else{if(x2-x1>y1-y2){while(y1-y2>0) {puts("RD"); x1++; y1--;}while(x2-x1>0) {puts("R"); x1++;}}else{while(x2-x1>0) {puts("RD"); x1++; y1--;}while(y1-y2>0) {puts("D"); y1--;}}}}else{if(y1<=y2){if(x1-x2>y2-y1){while(y2-y1>0) {puts("LU"); x1--; y1++;}while(x1-x2>0) {puts("L"); x1--;}}else{while(x1-x2>0) {puts("LU"); x1--; y1++;}while(y2-y1>0) {puts("U"); y1++;}}}else{if(x1-x2>y1-y2){while(y1-y2>0) {puts("LD"); x1--; y1--;}while(x1-x2>0) {puts("L"); x1--;}}else{while(x1-x2>0) {puts("LD"); x1--; y1--;}while(y1-y2>0) {puts("D"); y1--;}}}}return 0;
}

View Code

 

转载于:https://www.cnblogs.com/gaojunonly1/p/10580491.html

codeforces3A相关推荐

最新文章

  1. SpringMVC教程--图片上传
  2. java错误页面显示错误信息_Struts2在JSP页面中显示错误信息和提示信息的方法
  3. 什么是管理型工业以太网交换机?
  4. 漂亮特殊字体可复制_12个创意字体免费下载网站
  5. 查询成绩最好的前两名_官宣!CPA考试成绩查询时间+合格标准+查询入口+成绩复核!注会考生查分前不看亏大了...
  6. 物联网架构----EMQ-Hook了解、连接Kafka发送消息
  7. Spring Boot(5)---常用注解总结
  8. Linux基础-编译安装Python
  9. Mac安装和配置Tomcat的教程
  10. 宿舍管理系统 php,基于php的大学生宿舍管理系统
  11. 利用四阶龙格库塔法(Runge-Kutta methods)求解常微分方程并用其迭代式用MATLAB绘制分叉混沌图
  12. 详解SSTI模板注入
  13. python 会议室预约系统解决方案_会议预约管理系统解决方案
  14. GitQ 导读: 为什么 GitHub ?
  15. December'English Learning
  16. 自建站(独立站)平台推荐
  17. Microsoft SQL Server Reporting Services 初探
  18. 骗子网站--正规网赚系统--www.j9m2.com--诈骗网站
  19. 仿QQ写的chrome浏览器插件.
  20. golang语言 []interface{}和interface{}

热门文章

  1. mysql处理上百万条的数据库如何优化语句来提高处理查询效率
  2. 丽水风光(二)—劫色“古堰画乡”
  3. 设计模式笔记(9)---组合模式(结构型)
  4. 爱不释手(Typingfaster)1.78beta,重大升级,欢迎试用,期待反馈。
  5. SVO 学习笔记(三)
  6. mysql整理类型_Mysql 时间类型整理
  7. rust矿洞绳子怎么爬下_车底下绑一根绳子妙用在哪?看看老司机怎么说!
  8. 软件项目技术方案_榆林化学公司项目工艺包关键技术创新方案审查顺利完成
  9. cytoscape插件下载_cytoscape插件BinGO安装以及GO富集分析和网络可视化
  10. 动态图相册 android,‎App Store 上的“动态图相册”