CCF201403 4 無線網路 最短路

2021-08-27 14:23:20 字數 604 閱讀 6434

傳送門:ccf201403-4 無線網路

若把距離小於等於r的兩路由器視為存在一條邊,則題目可以歸為求無權無向圖的最短路徑,就變得十分簡單了。

直接跑一遍spfa,求得點1到其他點的最短路。因為題目要求的是最少經過的中轉路由器的數量,而我們用spfa求得的最短路是包含了終點的,故要輸出點1到點2的最短路的值-1 (s)。

#include #define ll long long

#define inf 0x3f3f3f3f

using namespace std;

const int maxn = 256;

struct point

p[maxn];

struct node //後面的spfa需要用到的結構

node(int x, int k): x(x), k(k) {}

};int n, m, k, dis[maxn], vis[maxn];

ll r, d[maxn][maxn];

void read()

}void spfa()}}

}}void solve()

int main()

CCF 201403 4 無線網路

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

CCF 201403 4 無線網路

題目大意 在這一堆路由器中找出第乙個路由器到第二個路由器經過的最少中轉路由器數,最少次數問題。用廣搜bfs,一層層搜,哪層搜到就返回層數 1,每層走的時候計搜到的新增路由器數,當經過的新增路由器數小於等於k時才入列。注意 建立鄰接表時,計算結點兩兩之間的距離,小於等於r就建立這兩個結點的連線。bfs...

CCF 201403 4 無線網路

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