codeforces3A
生活随笔
收集整理的這篇文章主要介紹了
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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019第四周作业(基础作业+挑战作业)
- 下一篇: leecode第二十题(有效的括号)