學習內容:鏈式向前星
真的說實話這東西不太難,但是看了一圈部落格都講得好奇怪啊,完全不像在講東西。。好在看了一篇不錯的部落格:
第一部分:儲存
inthead[ma];
int n,cnt=0
;struct
node
edge[ma];
第二部分:新增邊
void add(int u,int v,intw)
第三部分:遍歷圖
先說一下遍歷乙個點所連的邊(以點u 為例)
for(int j=head[u]; j & 1; j=edge[j].next)cout
**注意需要初始化head陣列為-1**
好了就這些,看懂就可以開心存圖了
鏈式向前星
我們首先來看一下什麼是前向星.前向星是一種特殊的邊集陣列,我們把邊集陣列中的每一條邊按照起點從小到大排序,如果起點相同就按照終點從小到大排序,並記錄下以某個點為起點的所有邊在陣列中的起始位置和儲存長度,那麼前向星就構造好了.用len i 來記錄所有以i為起點的邊在陣列中的儲存長度.用head i 記...
鏈式向前星(陣列模擬鄰接表)
有的時候有的圖可能比較稀疏而且點數較多,鄰接矩陣存不下,所以就要用到鄰接表。鄰接錶用vector陣列比較方便,但是vector比較慢。所以就有了鏈式向前星。include include include using namespace std 鏈式向前星其實就是有n鍊錶,每條鍊錶存的是所有相同結點的...
序列(差分約束 鏈式向前星)
傳送門 洛谷 p1645 有乙個整數序列,它的每個數各不相同,我們不知道它的長度是多少 即整數個數 但我們知道在某些區間中間至少有多少個整數,用區間 li,ri,ci 來描述,表示這個整數序列中至少有ci個數來自區間 li,ri 給出若干個這樣的區間,問這個整數序列的長度最少能為多少?第一行乙個整數...