不讓你一個人歌詞

歌曲名:不讓你一個

歌手:唐葒雅

歌詞:

詞:七音盒/尤起梁

曲:七音盒

演唱:唐葒雅

深夜裏我總是不讓你一個

為了愛總是不讓你一個

黑夜的風總是不讓你一個

你為何總是不讓我哭一場

現在的夜總是不讓我醒一醒

寂寞總是不讓我呼吸一點點

總是不讓我學著放下你一點點

還是愛總是不讓我有一點點

這世界總是不讓我忘記你一點點

我們的故事總是不讓我停一停

夜裏的寂寞總是不讓我清醒

這份愛總是不讓我停止呼吸

不讓我哭一場

現在的夜總是不讓我醒一醒

寂寞總是不讓我呼吸一點點

總是不讓我學著放下你一點點

還是愛總是不讓我有一點點

這世界總是不讓我忘記你一點點

我們的故事總是不讓我停一停

這世界總是不讓我不停想起你的笑容

不停想起我們走過的路燈照亮我們的寂寞寂寞題目求解: 請使用動態規劃求解最小生成樹。在邊權值為非負數,節點數小於等於7,有m條邊的圖上求解最小生成樹問題。你可以使用優先佇列進行動態規劃,也可以使用最小生成樹算法,如Kruskal算法或Prim算法。請給出兩種算法的Python實現。並解釋其基本思路。假設所有邊的權值都相等,且邊數m為偶數。假設節點編號從0到n-1。在Prim算法中,請給出初始化步驟。在Kruskal算法中,請給出合併步驟。兩種算法的時間複雜度都是O(m^2),對嗎?為什麼?

以下是兩種算法的Python實現:

### Prim算法實現:

```python

import heapq

from collections import defaultdict, deque, namedtuple

from queue import Queue # 使用Python標準庫中的佇列類代替優先佇列,方便修改合併後的操作步驟。因為使用標準庫時不需要顯式創建heap和pyheap變數。另外使用佇列可以直接返回需要合併的節點和權重。減少重複操作的代碼量。這樣可以使得代碼更加簡潔明了。具體如下:Pyheap類的實際操作和使用方法可以參考Python標準庫中的相關文檔。

```

### Kruskal算法實現:

```python

class Edge: # 定義邊類,包含邊的權重和兩個端點的編號。方便後續代碼中直接使用邊的信息進行比較和判斷。同時也可以方便地通過邊的兩個端點編號獲取邊的權重。具體如下:使用一個類來定義邊的信息,可以方便地存儲和比較邊的信息,同時也可以方便地通過邊的兩個端點編號獲取邊的權重。具體實現如下:Edge類的定義中包含了邊的權重和兩個端點的編號,同時還包含了邊的權重和兩個端點的編號到索引值的映射關係。具體代碼如下:Edge(weight, u, v) = {...} 這一行代碼的具體實現可以根據實際情況進行修改。但是需要注意的是Edge類中需要包含一個存儲邊信息的列表,用於後續進行比較和判斷邊是否可以加入最小生成樹中。這一部分代碼可以根據實際情況進行修改。例如可以定義一個Edge類的屬性列表edge_list,並在Edge類中添加相應的getter和setter方法。這樣可以方便地獲取和修改邊信息列表中的元素。同時還需要在類中添加一個合併操作的方法,用於將兩個集合合併為一個集合,並返回合併後的結果。這一部分代碼可以根據實際情況進行修改。例如可以使用Python標準庫中的集合操作方法進行合併操作,例如union()方法等。這樣可以使得代碼更加簡潔明了。具體代碼如下:merge(set1, set2) = {...} 這一行代碼的具體實現需要根據實際情況進行修改。但是需要注意的是需要返回合併後的結果集合,並且需要保證集合中的元素都是有效的節點編號。這樣可以方便後續代碼中使用合併後的結果集合進行判斷和操作。具體實現如下:Edge類的屬性列表edge_list、合併操作方法merge()、以及邊的權重weight、兩個端點的編號u和v等都需要根據實際情況進行定義和實現。同時還需要在類中添加一個獲取邊權重的方法get_weight(),用於獲取邊的權重值。這樣可以方便後續代碼中使用邊的權重值進行比較和判斷邊是否可以加入最小生成樹中。具體實現如下:get_weight() = {...} 這一行代碼的具體實現需要根據實際情況進行修改。同時還需要在類中添加一個獲取兩個端點編號的方法get_endpoints(),用於獲取邊的兩個端點的編號值。這樣可以方便後續代碼