资讯详情

【ACWing】2135. 马步距离

📅 2026/10/19 1:10:52 | 华诺云谱 👁 阅读
【ACWing】2135. 马步距离
题目地址https://www.acwing.com/problem/content/description/2137/在国际象棋和中国象棋中马的移动规则相同都是走“日”字我们将这种移动方式称为马步移动。如下图所示从标号为0 00的点出发可以经过一步马步移动达到标号为1 11的点经过两步马步移动达到标号为2 22的点。任给平面上的两点p pp和s ss它们的坐标分别为( x p , y p ) (x_p,y_p)(xp​,yp​)和( x s , y s ) (x_s,y_s)(xs​,ys​)其中x p , y p , x s , y s x_p,y_p,x_s,y_sxp​,yp​,xs​,ys​均为整数。从( x p , y p ) (x_p,y_p)(xp​,yp​)出发经过一步马步移动可以达到( x p 1 , y p 2 ) , ( x p 2 , y p 1 ) , ( x p 1 , y p − 2 ) , ( x p 2 , y p − 1 ) , ( x p − 1 , y p 2 ) , ( x p − 2 , y p 1 ) , ( x p − 1 , y p − 2 ) , ( x p − 2 , y p − 1 ) (x_p1,y_p2),(x_p2,y_p1),(x_p1,y_p−2),(x_p2,y_p−1),(x_p−1,y_p2),(x_p−2,y_p1),(x_p−1,y_p−2),(x_p−2,y_p−1)(xp​1,yp​2),(xp​2,yp​1),(xp​1,yp​−2),(xp​2,yp​−1),(xp​−1,yp​2),(xp​−2,yp​1),(xp​−1,yp​−2),(xp​−2,yp​−1)。假设棋盘充分大并且坐标可以为负数。现在请你求出从点p pp到点s ss至少需要经过多少次马步移动输入格式只包含4 44个整数它们彼此用空格隔开分别为x p , y p , x s , y s x_p,y_p,x_s,y_sxp​,yp​,xs​,ys​。输出格式输出一个整数表示从点p pp到点s ss至少需要经过的马步移动次数。数据范围− 10 7 x p , y p , x s , y s 10 7 −10^7x_p,y_p,x_s,y_s10^7−107xp​,yp​,xs​,ys​107证明见https://blog.csdn.net/qq_46105170/article/details/105673059。代码如下#includeiostreamusingnamespacestd;longf(longx,longy){if(!x!y)return0;if(x1y0)return3;if(x2y2)return4;if(yx-y){if(x%20)returnx/2(x/2-y)%2;elsereturn(x1)/2((x1)/2-(y1))%2;}longd(2*y-x)/3;if(!d)d1;xd,y-d;returnf(x,y);}intmain(){longx,y,a,b;scanf(%ld%ld%ld%ld,x,y,a,b);longcabs(x-a),dabs(y-b);if(cd)swap(c,d);printf(%ld\n,abs(f(c,d)));return0;}时空复杂度O ( 1 ) O(1)O(1)。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑