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的更多相关文章
随机推荐
- I2C总线通信
UART 属于异步通信,比如电脑发送给单片机,电脑只负责把数据通过TXD 发送出来即可,接收数据是单片机自己的事情.而 I2C 属于同步通信, SCL 时钟线负责收发双方的时钟节拍, SDA 数据线负 ...
- [01] 浅谈RESTful风格的API
1.什么是RESTful风格的API REST,即Representational State Transfer,可以理解为"(资源的)表现层状态转化". 在网络上,我们通过浏览器 ...
- LED恒流驱动IC汇总
LED恒流驱动IC汇总 2017年09月22日 11:29:01 阅读数:569 这几天在找LED恒流驱动芯片,无意间在LED网论坛上发现这个帖子,分享给大家! LED恒流IC芯片大盘点 ...
- Django 学习 (第五部)
表设计: from django.db import models # Create your models here. # class Foo(models.Model): # name = mod ...
- Luogu4131 WC2005 友好的生物 状压DP
传送门 首先$C_i$是没有意义的,因为可以直接让$d_i \times= C_i$,答案也是一样的 所以我们现在考虑求$(\sum_{i=1}^{K-1} |d_{p,i}-d_{q,i}|) - ...
- Luogu P3177 [HAOI2015]树上染色
一道有机结合了计数和贪心这一DP两大考点的神仙题,不得不说做法是很玄妙. 首先我们很容易想到DP,设\(f_{i,j}\)表示在以\(i\)为根节点的子树中选\(j\)个黑色节点的最大收益值. 然后我 ...
- 爬虫学习--http请求详解
上篇博客里面写了,爬虫就是发http请求(浏览器里面打开发送的都是http请求),然后获取到response,咱们再从response里面找到想要的数据,存储到本地. 咱们本章就来说一下什么是http ...
- OSGI的WEB开发环境搭建
第一步,搭建OSGI环境: 打开eclipse,点击run->run configration..,配置如下,点击run. 运行结果如下图所示:说明OSGI环境搭建完毕. 第二步:搭建基于OSG ...
- 2016-03-22 OneZero团队 Daily Scrum Meeting
会议时间: 2016-03-22 9:33-9:57am 会议内容: 一.在原有Sprint Backlog基础上,我们加了亮点(摇一摇功能:随机选取一条记录在界面显示,以提醒主页君回忆) 需求分析图 ...
- linux内核分析第五次实验
给MenuOS增加time和time-asm命令 上周是从用户态的观点来理解系统调用,这周从内核态出发研究系统调用,通过跟踪调试,首先把上周的两个命令加到MenuOS中: rm menu -rf 强制 ...