測試資料很弱,用廣搜就可以找到最短路。但是貪心演算法應該不能每次都找到最優解。
如果可以在超過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 個路由器之間...