街區最短路徑問題
時間限制:3000 ms | 記憶體限制:65535 kb
難度:4
描述 乙個街區有很多住戶,街區的街道只能為東西、南北兩種方向。
住戶只可以沿著街道行走。
各個街道之間的間隔相等。
用(x,y)來表示住戶坐在的街區。
例如(4,20),表示使用者在東西方向第4個街道,南北方向第20個街道。
現在要建乙個郵局,使得各個住戶到郵局的距離之和最少。
求現在這個郵局應該建在那個地方使得所有住戶距離之和最小;
輸入 第一行乙個整數n<20,表示有n組測試資料,下面是n組資料;
每組第一行乙個整數m<20,表示本組有m個住戶,下面的m行每行有兩個整數0
#include
#include
#include
using
namespace
std;
struct point;
int cntlenth(int x,int y, point dst)
int main()
arrpoint = (point*)malloc(sizeof(point) * number);
for (int k = 0; kscanf("%d %d",&arrpoint[k].x,&arrpoint[k].y);
if (max_x < arrpoint[k].x) max_x = arrpoint[k].x;
if (max_y < arrpoint[k].y) max_y = arrpoint[k].y;
if (min_x > arrpoint[k].x) min_x = arrpoint[k].x;
if (min_y > arrpoint[k].y) min_y = arrpoint[k].y;
}for (int x = min_x; x <= max_x;x++)
if (tempsum < minsum) }}
ret[i] = minsum;
}
for (int i = 0; i < n; i++) printf("%d\n", ret[i]);
return
0;}
南陽理工 7街區最短路徑問題
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 乙個街區有很多住戶,街區的街道只能為東西 南北兩種方向。住戶只可以沿著街道行走。各個街道之間的間隔相等。用 x,y 來表示住戶坐在的街區。例如 4,20 表示使用者在東西方向第4個街道,南北方向第20個街道。現在要建乙個郵局,使...
南陽 7 街區最短路徑問題
解題思路 題意很明確,關鍵就是求郵局的位置,由於所有住戶座標到該點的距離和最短,其實就是縱橫座標 中位數。即先排序,然後計算中位數的序號。接著就容易求出各個住戶到郵局的距離之和即可 演算法 n 個數 a 1 a 2 a n 求 min a i x 首先 把這 n 數進行排序 ans a n i a ...
南陽ACM7 街區最短路徑問題
街區最短路徑問題 時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述乙個街區有很多住戶,街區的街道只能為東西 南北兩種方向。住戶只可以沿著街道行走。各個街道之間的間隔相等。用 x,y 來表示住戶坐在的街區。例如 4,20 表示使用者在東西方向第4個街道,南北方向第20個街道。現在...