1. 程式人生 > >隨便寫寫,,,

隨便寫寫,,,

今天本來是打算把積攢多天的作業做一下的,但是一來到工作室就把作業的事全忘了,,,全身心的弄起了差分約束題,,,很是慚愧啊,,我承認我不是一個多麼聰明的人,但acm怎麼對我有這麼大地吸引力呢,,,很是佩服acm啊,,,,下面就對最近一段時間的情況做個總結吧,,一開始xd弄了個生成樹專題,,,我對生成樹有了一個比較全面的認識,,,最小生成樹,,次小生成樹,k小生成樹,,不完全生成樹,最優比例生成樹,,下面一個一個的談一下吧,,最小生成樹用prim和kursal,演算法的選取有根據圖是稠密還是稀,如果是前者就用prim後者最好用kursal,,還有就是存圖的時候什麼時候用鄰接矩陣,什麼時候用鄰接表,,連線表可以自己寫,也可以用stl中的vector,不過我建議最好自己寫,,。其次就是次小生成樹,,我已開始理解的次小生成樹,就是還存在和最小生成樹權值相等的生成樹,,但是最後kk糾正了我錯誤,就是還存在不小於最小生成樹的其他生成樹,,如果解決最小生成樹是否唯一,我總結了2種方法,,,一種是prim和krusal的添邊刪邊,一種是用prim記錄是否存在一點其它點對它進行兩次及以上的更新,並且第二次更新和第一次更新效果相同,,如果存在就說明存MST不唯一,否者唯一,,k小生成樹就是第k小生成樹,,這個只要會prim的添邊刪邊我想這個應該不難,,最後一個就是最優比例生成樹,我所知道的有兩種方法,一種二分法,一種迭代法,,,現在還不太明白的就是為什麼在生成樹權值為0時取得最優比例呢,,,這個還需進一步消化,,,。再次就是我弄的這個專題最短路差分約束,,首先介紹一下求最短路的演算法,dijstra和floyd,bellman,spfa,前面兩種只能求正權值得,後面兩種可以求權值和判斷是不是存在負圈,,,這幾天主要做的就是關於後兩種,差分約束題,這裡我談談我對差分約束的理解,,如果按小於等於建圖,直接最短路徑就ok了,如果按大於等於建圖直接最長路徑就ok了,,,,需要注意的是前者求的是未知數的最大值,後者求的是最小值。