阿里巴巴2023年提前批程式設計題解析

2022-03-18 06:46:11 字數 1168 閱讀 3829

*光明小學的小朋友們要舉行一年一度的接力跑大賽了,但是小朋友們卻遇到了乙個難題:設計接力跑大賽的線路,你能幫助他們完成這項工作麼?

光明小學可以抽象成一張有n個節點的圖,每兩點間都有一條道路相連。光明小學的每個班都有m個學生,所以你要為他們設計出一條恰好經過m條邊的路徑。

光明小學的小朋友們希望全盤考慮所有的因素,所以你需要把任意兩點間經過m條邊的最短路徑的距離輸出出來以供參考。*

你需要設計這樣乙個函式:

res solve( n, m, map);

注意:map必然是n * n的二維陣列,且map[i][j] == map[j][i],map[i][i] == 0,-1e8 <= map[i][j] <= 1e8。(道路全部是無向邊,無自環)2 <= n <= 100, 2 <= m <= 1e6。要求時間複雜度控制在o(n^3*log(m))。

map陣列表示了一張稠密圖,其中任意兩個不同節點i,j間都有一條邊,邊的長度為map[i][j]。n表示其中的節點數。

你要返回的陣列也必然是乙個n * n的二維陣列,表示從i出發走到j,經過m條邊的最短路徑

你的路徑中應考慮包含重複邊的情況。

這個題目要求在30分鐘內解決,臣妾做不到的說。先來看看題目解析。

#include using namespace std;

void solve(int n, int m, int** map, int** res)}}

} for (int j = 0; j < n; j++)

res[i][j] = e[j][m - 1];

}};int main()

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

for (j = 0; j < n; j++)

cin >> map[i][j];

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

for (j = 0; j < n; j++)

res[i][j] = 100000000;

solve(n, m, map, res);

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

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

delete res[i];

delete res;

return 0;

}

程式設計測試題 阿里巴巴2023年提前批程式設計題

光明小學的小朋友們要舉行一年一度的接力跑大賽了,但是小朋友們卻遇到了乙個難題 設計接力跑大賽的線路,你能幫助他們完成這項工作麼?光明小學可以抽象成一張有n個節點的圖,每兩點間都有一條道路相連。光明小學的每個班都有m個學生,所以你要為他們設計出一條恰好經過m條邊的路徑。光明小學的小朋友們希望全盤考慮所...

2019 阿里巴巴雲原生這一年

劃重點 spring 官方宣布 spring cloud alibaba 畢業 serverless 任務編排服務函式工作流公測。函式工作流可靠地執行流程步驟,並提供視覺化 日誌記錄和審計來追蹤監控工作流的執行,大幅簡化使用者編排分布式任務 微服務的難度,幫助使用者聚焦業務邏輯的創新 edas 專有...

阿里巴巴演算法崗程式設計題 菜鳥倉庫

菜鳥倉庫是乙個很大很神奇的地方,各種琳琅滿目的商品整整齊齊地擺放在一排排貨架上,通常一種品類的商品會放置在貨架的某乙個格仔中,格仔設有統一的編號,方便工人們挑選。有一天沐哲取菜鳥倉庫參觀,無意中發現第1個貨架格仔編碼為1,第2 3個分別為1,2,第4 6個格仔分別是1,2,3,第7 10個格仔編號分...