日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

codeforces3A

發布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 codeforces3A 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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?相應表示左移、右移、上移和下移 (依據圖片),且兩字母組合表示斜對角移動。如果答案不唯一,打印它們中的任何一種。

示例

輸入
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=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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。