樓房的距離

2021-10-02 12:57:32 字數 912 閱讀 7460

x星球居民小區的樓房全是一樣的,並且按矩陣樣式排列。其樓房的編號為1,2,3…

當排滿一行時,從下一行相鄰的樓往反方向排號。

比如:當小區排號寬度為6時,開始情形如下:

1 2 3 4 5 6

12 11 10 9 8 7

13 14 15 …

我們的問題是:已知了兩個樓號m和n,需要求出它們之間的最短移動距離(不能斜線方向移動)

3個整數w m n,空格分開,都在1到10000範圍內

要求輸出乙個整數,表示m n 兩樓間最短移動距離。

6 8 2

4 7 20

4

5

#include

#include

#include

typedef

long

long ll;

intmain()

else

if(srow%2!=

0)else

if(fcol-scol<0)

else

if(frow-srow <0)

else

printf

("%lld\n"

,minus_col+minus_row);}

return0;

}

算第乙個數的行號和列號,行號比較容易解決:n % w == 0? n/w : n/(w-1),

列號的確定依賴於行是奇數還是偶數

偶數行:從左至右公升序 列號 = (寬度-數字%寬度)%寬度

奇數行:從左至右降序 列號 = (數字%寬度-1+寬度)%寬度

同上,算第二個數的行號和列號,

兩個數的|行號之差|+|列號之差|就是答案

F 樓房的距離

某小區的樓房全是一樣的,並且按矩陣樣式排列。其樓房的編號1,2,3 當排滿一行時,從下一行相鄰的樓往反方向排號。比如 當小區排號寬度為 6 時,開始情形如下 1 2 3 4 5 6 12 11 10 9 8 7 13 14 15 現在已知小區的寬度 w。問你兩個樓號 n 和 m 對應的樓房之間的最短...

D 樓房重建

時間限制 ms 空間限制 kb 評測說明 1s,256m 問題描述 小a的樓房外有一大片施工工地,工地上有n棟待建的樓房。每天,這片工地上的房子拆了又建 建了又拆。他經常無聊地看著窗外發呆,數自己能夠看到多少棟房子。為了簡化問題,我們考慮這些事件發生在乙個二維平面上。小a在平面上 0,0 點的位置,...

樓房重建 (線段樹)

2957 樓房重建 time limit 10 sec memory limit 256 mb submit 2289 solved 1081 submit status discuss description 小a的樓房外有一大片施工工地,工地上有n棟待建的樓房。每天,這片工地上的房子拆了又建 建...