201403 4 無線網路

2022-09-07 13:24:12 字數 732 閱讀 6387

測試資料很弱,用廣搜就可以找到最短路。但是貪心演算法應該不能每次都找到最優解。

如果可以在超過k個位置中選擇新增路由器實現更短的路徑,那麼貪心的選擇就是最先搜尋到的k個位置。換句話說貪心認為無論在**新增路由器,減少中轉的效果是一樣的。列舉一些簡單情況可以證明這是不合理的。

#include #include #include #define max_routers 0xff

#define pow(x) ((x)*(x))

struct point ;

struct node ;

long long dist;

point routers[max_routers];

bool graph[max_routers][max_routers];

bool visit[max_routers];

int dfs(int start, int target)

int i;

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

} for (;i < routers_number + unused_point_number;++i)

} }}int main()

for (i = 0;i < routers_number + unused_point_number;++i)

} std::cout << dfs(0,1);

}

201403 4 無線網路

問題描述 目前在乙個很大的平面房間裡有 n 個無線路由器,每個無線路由器都固定在某個點上。任何兩個無線路由器只要距離不超過 r 就能互相建立網路連線。除此以外,另有 m 個可以擺放無線路由器的位置。你可以在這些位置中選擇至多 k 個增設新的路由器。你的目標是使得第 1 個路由器和第 2 個路由器之間...

CCF CSP 201403 4 無線網路

問題描述 目前在乙個很大的平面房間裡有 n 個無線路由器,每個無線路由器都固定在某個點上。任何兩個無線路由器只要距離不超過 r 就能互相建立網路連線。除此以外,另有 m 個可以擺放無線路由器的位置。你可以在這些位置中選擇至多 k 個增設新的路由器。你的目標是使得第 1 個路由器和第 2 個路由器之間...

CCF 201403 4 無線網路

問題描述 目前在乙個很大的平面房間裡有 n 個無線路由器,每個無線路由器都固定在某個點上。任何兩個無線路由器只要距離不超過 r 就能互相建立網路連線。除此以外,另有 m 個可以擺放無線路由器的位置。你可以在這些位置中選擇至多 k 個增設新的路由器。你的目標是使得第 1 個路由器和第 2 個路由器之間...