題目說明
移動距離
1 2 3 4 5 6
12 11 10 9 8 7
13 14 15 …
我們的問題是:已知了兩個樓號m和n,需要求出它們之間的最短移動距離(不能斜線方向移動)
輸入為3個整數w m n,空格分開,都在1到10000範圍內
w為排號寬度,m,n為待計算的樓號。
要求輸出乙個整數,表示m n 兩樓間最短移動距離。
例如:使用者輸入:
6 8 2
則,程式應該輸出:
4再例如:
使用者輸入:
4 7 20
則,程式應該輸出:
5資源約定:
峰值記憶體消耗 < 256m
cpu消耗 < 1000ms
思路分析
找到 m(x,y) , n(x,y),發現規律進行計算
以n為例子
計算 y:if(n%w0)則y=n/w;,否則y=n/w+1;
計算x:if(y%20)則x=yw-n+1;否則x=w-(yw-n);
實際操作
#include
#include
intmain()
else
if(m%w==0)
else
if(ny%2==
0)else
if(my%2==
0)else
printf
("%d"
,abs
(nx-mx)
+abs
(ny-my));
}
//不要想太複雜,多畫圖,找規律!!!撒比的我居然在想用bfs寫~//
:)
藍橋杯 2015初賽 移動距離
x星球居民小區的樓房全是一樣的,並且按矩陣樣式排列。其樓房的編號為1,2,3 當排滿一行時,從下一行相鄰的樓往反方向排號。比如 當小區排號寬度為6時,開始情形如下 1 2 3 4 5 6 12 11 10 9 8 7 13 14 15 我們的問題是 已知了兩個樓號m和n,需要求出它們之間的最短移動距...
藍橋杯2015初賽 移動距離
時間限制 1 sec 記憶體限制 256 mb 提交 1211 解決 522 狀態 提交 命題人 外部匯入 題目描述 1 2 3 4 5 6 12 11 10 9 8 7 13 14 15 我們的問題是 已知了兩個樓號m和n,需要求出它們之間的最短移動距離 不能斜線方向移動 輸入輸入存在多組測試資料...
藍橋杯 2015 B組 C C 8 移動距離
移動距離 1 2 3 4 5 6 12 11 10 9 8 7 13 14 15 我們的問題是 已知了兩個樓號m和n,需要求出它們之間的最短移動距離 不能斜線方向移動 輸入為3個整數w m n,空格分開,都在1到10000範圍內 w為排號寬度,m,n為待計算的樓號。要求輸出乙個整數,表示m n 兩樓...