nyoj 7 街區最短路徑

2021-06-27 15:55:59 字數 512 閱讀 5833

#include #include using namespace std;

int cmp(int a, int b)

if(m % 2 == 0)

sum1 = sum1 + midx;

sort(y, y+m, cmp);

midy = y[m/2];

for(i = 0 ; i < m ; i++)

if(m % 2 == 0)

sum2 = sum2 + midy;

printf("%d\n", sum1 + sum2);

}return 0;

}

可以看成走方格問題。這個和高中那些求到哪點哪點之間最短的點那種題不一樣,這裡只能橫著走和豎著走,也就是只能走方格。所以橫縱座標都是中位數。

這裡用到了一種化簡,比如1,2,3,4,5.sum就是(3-1)+(3-2)+(4-3)+(5-3)= 4 + 5 - 1 - 2.所以中位數以前的就是被減,之後的就是被加。也要分奇偶性分析。

NYOJ 7 街區最短路徑問題

描述 乙個街區有很多住戶,街區的街道只能為東西 南北兩種方向。住戶只可以沿著街道行走。各個街道之間的間隔相等。用 x,y 來表示住戶坐在的街區。例如 4,20 表示使用者在東西方向第4個街道,南北方向第20個街道。現在要建乙個郵局,使得各個住戶到郵局的距離之和最少。求現在這個郵局應該建在那個地方使得...

NYOJ 7 街區最短路徑問題

include include includeint a 30 b 30 c 110 110 c1 110 110 e 30 f 30 a陣列存的是橫座標 b陣列存的是縱座標 因為要對a和b陣列排序 所以有新增兩個陣列e和f儲存未排序時的a與b陣列 c陣列是乙個矩陣 c1陣列是來記錄該位置是否被訪問...

NYOJ 7 街區最短路徑問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 乙個街區有很多住戶,街區的街道只能為東西 南北兩種方向。住戶只可以沿著街道行走。各個街道之間的間隔相等。用 x,y 來表示住戶坐在的街區。例如 4,20 表示使用者在東西方向第4個街道,南北方向第20個街道。現在要建乙個郵局,使...