time limit: 10 sec memory limit: 162 mb
submit: 2267 solved: 1026
[submit][status][discuss]
在西洋棋和中國象棋中,馬的移動規則相同,都是走「日」字,我們將這種移動方式稱為馬步移動。如圖所示,
從標號為 0 的點出發,可以經過一步馬步移動達到標號為 1 的點,經過兩步馬步移動達到標號為 2 的點。任給
平面上的兩點 p 和 s ,它們的座標分別為 (xp,yp) 和 (xs,ys) ,其中,xp,yp,xs,ys 均為整數。從 (xp,yp)
出發經過一步馬步移動可以達到 (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 到點 s 至少
需要經過多少次馬步移動?
只包含4個整數,它們彼此用空格隔開,分別為xp,yp,xs,ys。並且它們的都小於10000000。
含乙個整數,表示從點p到點s至少需要經過的馬步移動次數。
1 2 7 9
5這道題和camp上的knight
何其相似啊,唯一的區別在與這裡是從乙個點到另乙個點,所以兩個點相減就可以變成從(0,0)到任意點了
1 #include 2 #include 3 #include 4 #include5 #include6 #include7view codeusing
namespace
std;
8 typedef long
long
ll;9
10ll fun(ll x, ll y)
15if (x == 2 && y == 2
) 18 ll delta = x -y;
19if (y>delta)
22else25}
2627
intmain()
28
BZOJ 1193 馬步距離(貪心 亂搞)
題意 給出平面上兩個位置a和b。每次跳馬步就是日字,從a到b最少要多少步?思路 若ab之間的距離小於等於10則直接爆搜。否則,a每次向b方向移動。這裡,若a移動某兩個方向後與b的距離相等,不妨設xy方向的距離分別為detx,dety,即detx dety相等,那麼接著比較abs detx dety ...
bzoj1193 HNOI2006 馬步距離
在西洋棋和中國象棋中,馬的移動規則相同,都是走 日 字,我們將這種移動方式稱為馬步移動。如圖所示,從標號為 0 的點出發,可以經過一步馬步移動達到標號為 1 的點,經過兩步馬步移動達到標號為 2 的點。任給平面上的兩點 p 和 s 它們的座標分別為 xp,yp 和 xs,ys 其中,xp,yp,xs...
P2060 HNOI2006 馬步距離
一道神奇的bfs 1.bfs dfs 這次真的不是我懶,我也不知道dfs怎麼寫.2.stl中的set或者map.資料範圍非常大,直接bfs肯定是一片黑色 指tle,mle 直接貪心又有可能會出一些莫名其妙的問題,所以,大範圍貪心,小範圍bfs的思路就出現了 不要問我是怎麼出現的 如這樣一張圖,要從紅...