原创 圖論之floyed

爲了鞏(ying)固(fu)提(zuo)高(ye),我決定寫幾篇圖論的博客。本人蒟蒻,如有不對,請狂噴我! ##弗洛伊德## floyed屬於基本的圖論算法之一。floyed用於求任意兩點之間的最短距離,其原理比較簡單,主要是迭代,相信大

原创 2018年福州寒假集訓記Day2

哦 今天上午依然是考試。 嗯,題目難度稍微有點大,不過靠暴力還是能拿到一些分的。 不知道爲什麼我的程序提交上去然後沒有評測(慶幸) 我覺得叫上去可能最多50分吧·。 T1 這道題正解是二分答案(我真的沒想到)。 二分

原创 圖論之dijkstra

di’jkstra是由迪傑斯特拉提出的一種圖論算法,用於求一個點到其他所有點的最短距離。 dijkstra的核心思想就是將所有的點分成兩個集合A,B,從B集合中找到一個離A集合內的點最近的點,把他加入A集合,然後再用這個點

原创 排序之冒泡排序

好,下面是簡單排序的最後一種:冒泡排序; 主要思想 假如有一串無序數列,我們要將它排序。 我們先設想一下它的有序情況,每個元素與其他元素之間是不是都有一些必然關係。 就像5和10在從小到大序列中,5是不是必然在10的左邊,

原创 排序之選擇排序

書接上文,下面是選擇排序。 選擇排序是最容易想到也是最容易實現的排序方式。 *主要思想 n個元素的數組,每次從原數組中找到最小的一個元素,將這個元素加入新數組,再把這個元素從元數組中刪除,就完成了一次選擇。

原创 2018寒假福州集訓大總結

別在意Day6,7,8去哪裏了(我懶得寫) 長達一週的集訓終於結束了。 這次集訓確實學到了不少東西,但最重要的是開拓了眼界,見識了大佬們的厲害,明白了自己的弱小。 就知識方面的話,感覺自己還有很多沒學過的,許多學過的知識也沒

原创 圖論之Kruskal

昨天圖論考試裏有一道最小生成樹的題目,我用prim騙了40分。(我不太記得Kruskal是怎麼寫的了)所以今天來寫一篇關於Kruskal的博客。 Kruskal要用到並查集的知識,如果不會並查集可以去這裏看: http://b

原创 圖論之拓撲排序

拓撲排序是根據先後順序排序,而不是根據大小來排序。 在有向無環圖中,點與點之間有單向邊相連,這表明一種約束關係。 例如A到B有一條邊,那麼A到B就有約束關係。 拓撲排序就是基於多個點之間的約束關係,生成一條線性序列。

原创 圖論之bellman-ford

如果邊有負權的話,dijkstra就是錯誤的了。 針對這種情況,還有一種高級的算法叫做bellman-ford; bellman-ford也是用來求單源點到其他原點的最短距離。 bellman-ford可以用邊表或者鄰接表來

原创 蒟蒻迴歸啦啦啦

期中考試爆零,真的爽死啦。 不過令人興奮的是終於回到機房了(雖然都是爆零) 嗯,接下來就是一段新的旅程了。 感覺自己太弱,什麼都不會。 所以要好好學習,爭取學會除GCD以外的函數。 多看書,多刷題,多思考。 希望明年能

原创 2018寒假福州集訓記Day5

哇咔咔,我是不會鴿博客的。 先講一下今天的考試,結果就不談了。 總體來說考試難度我覺得還行(剛好虐我又不很虐)。 T1 這道理要聯繫到圖論,每一個點可以換到其他位置,換到其他位置後又可以再換,這些點構成了連通分量,在同一個

原创 動態規劃經典問題之LCS

LCS是最大公共子序列的縮寫。假設有兩個序列x和y,有一個序列z即是x的子序列,又是y的子序列,就稱z爲xy的公共子序列。最長公共子序列就是長度最長的公共子序列。(如果還不明白可以百度)。 如何求最大公共子序列呢? 我們首先想

原创 2018年寒假福州集訓Day3

哦,糟糕的一天。 上午考試人生首次爆零,下午數論一臉懵逼。難受。 T1是一個·模擬,只要選定這個圖形中的任意一個點,再判定他在第二張圖形中的位置,就可以預測出圖形移動軌跡。 T2這題想了好久,還打表找規律,然而失敗。其

原创 並查集!

並查集,顧名思義,有合併和查詢的功能,是一種非常高效的算法。 並查集其實賊簡單,主要就三個操作 1.查找根節點(找爸爸)。 void getfather(int v) { if(father[v]=v)//如果該節點的

原创 圖論入門測試之後。

昨天,那個大雪紛飛的日子,我們進行了圖論入門測試(md把入門去掉),然後就被虐了。 說一下題目吧。 考試的時候看到T1很快就想到這是個遍歷,但是我鄰接表用的熟,所以只能用鄰接矩陣。其實我想過是否要遍歷兩次,但是我不