codeforces3A
Shortest path of the king
棋盘上的国王被单独放置。尽管他是孤独的,但并未伤心,因为他有事关全局的重要性。例如,他必须正式访问方格 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 相应表示左移、右移、上移和下移 (依据图片),且两字母组合表示斜对角移动。如果答案不唯一,打印它们中的任何一种。
示例
a8
h1
7
RD
RD
RD
RD
RD
RD
RD sol:暴力if判断8个方向即可
Ps:代码非常丑丑丑丑丑
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=;
bool f=;
char ch=' ';
while(!isdigit(ch))
{
f|=(ch=='-'); ch=getchar();
}
while(isdigit(ch))
{
s=(s<<)+(s<<)+(ch^); ch=getchar();
}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<)
{
putchar('-'); x=-x;
}
if(x<)
{
putchar(x+''); return;
}
write(x/);
putchar((x%)+'');
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'+;
R(y1);
ch=' ';
while(!islower(ch)) ch=getchar();
x2=ch-'a'+;
R(y2);
Wl(max(abs(x1-x2),abs(y1-y2)));
if(x1<=x2)
{
if(y1<=y2)
{
if(x2-x1>y2-y1)
{
while(y2-y1>) {puts("RU"); x1++; y1++;}
while(x2-x1>) {puts("R"); x1++;}
}
else
{
while(x2-x1>) {puts("RU"); x1++; y1++;}
while(y2-y1>) {puts("U"); y1++;}
}
}
else
{
if(x2-x1>y1-y2)
{
while(y1-y2>) {puts("RD"); x1++; y1--;}
while(x2-x1>) {puts("R"); x1++;}
}
else
{
while(x2-x1>) {puts("RD"); x1++; y1--;}
while(y1-y2>) {puts("D"); y1--;}
}
}
}
else
{
if(y1<=y2)
{
if(x1-x2>y2-y1)
{
while(y2-y1>) {puts("LU"); x1--; y1++;}
while(x1-x2>) {puts("L"); x1--;}
}
else
{
while(x1-x2>) {puts("LU"); x1--; y1++;}
while(y2-y1>) {puts("U"); y1++;}
}
}
else
{
if(x1-x2>y1-y2)
{
while(y1-y2>) {puts("LD"); x1--; y1--;}
while(x1-x2>) {puts("L"); x1--;}
}
else
{
while(x1-x2>) {puts("LD"); x1--; y1--;}
while(y1-y2>) {puts("D"); y1--;}
}
}
}
return ;
}
codeforces3A的更多相关文章
随机推荐
- 在Oracle中执行动态SQL的几种方法
转载:在Oracle中执行动态SQL的几种方法 以下为内容留存: 在Oracle中执行动态SQL的几种方法 在一般的sql操作中,sql语句基本上都是固定的,如:SELECT t.empno,t.en ...
- CF797F Mice and Holes 贪心、栈维护DP
传送门 首先\(\sum c\)有些大,考虑将其缩小降低难度 考虑一个贪心:第一次所有老鼠都进入其左边第一个容量未满的洞(如果左边没有就进入右边第一个未满的洞),第二次所有老鼠都进入其右边第一个容量未 ...
- 配置Nginx反向代理WebSocket,以代理noVNC为例
什么是Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮 ...
- WinForm 简易仿360界面控件
因为经常要做一些1.2千行的小工具,WinForm自带的TabCtrl又不美观,所以想做成360的样子,在网上找来找去,都只有散乱的代码,没有可以通用的结构,于是自己写了一个简易的通用控件. 控件主要 ...
- 生活沉思录 via 哲理小故事(一)
1.小托蒂的悲剧 意大利小男孩托蒂,有一只十分奇怪的眼睛,因为从生理上看,这是一只完全正常的眼睛,但却是失明的. 原来,托蒂刚出生时,这只眼睛轻度感染,曾用绷带缠了两个星期.这对常人来说几乎没有人任何 ...
- Jvm 10 升级笔记
移除了 JPEGCodec https://www.cnblogs.com/liaolongjun/p/6878359.html
- Centos下添加静态路由(临时和永久有效)的操作记录
公司IDC机房服务器上部署了一套外网LB环境,默认配置的是外网ip的路由地址,由于要和其他内网机器通信,所以需要配置内网ip的路由地址.整个操作过程,记录如下,以供以后参考学习: 1)内网网卡绑定 [ ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录(1)
分布式监控系统Zabbix-3.0.3的安装记录 环境说明zabbix-server:192.168.1.30 #zabbix的服务端(若要监控本机,则需要配置本机的Zabbix agent, ...
- 树的最长链-POJ 1985 树的直径(最长链)+牛客小白月赛6-桃花
求树直径的方法在此转载一下大佬们的分析: 可以随便选择一个点开始进行bfs或者dfs,从而找到离该点最远的那个点(可以证明,离树上任意一点最远的点一定是树的某条直径的两端点之一:树的直径:树上的最长简 ...
- 四则运算coding
https://coding.net/u/ztf1641429293/p/sizeyunshuan/git/blob/master/Sizenyunsuan.java