在寒假的前半段集訓(xùn)里面,我有著除本身應(yīng)該學(xué)習(xí)的知識(shí)以外,還在雙號(hào)日的做題之中腹殿,也找到了在之前學(xué)習(xí)的算法之中存在的一些小問(wèn)題。比如在結(jié)構(gòu)體排序之中例书,我經(jīng)常會(huì)將代碼寫(xiě)成這樣
bool cmp(edge a,edge b)
{
if(a.w != b.w) return a.w < b.w;
}
而這樣寫(xiě)的話可能會(huì)造成RE锣尉,雖然自己不太理解這之中的奧秘,不過(guò)大概是因?yàn)槲也](méi)有排在a.w = b.w 這種情況下的排序决采。當(dāng)然自沧,這肯定是有用的,因?yàn)橹皩?xiě)的題能過(guò)树瞭,那是因?yàn)榭赡軘?shù)據(jù)剛好過(guò)了拇厢。總之晒喷,這是一個(gè)大問(wèn)題孝偎。
總結(jié)一下吧,在這個(gè)寒假小集訓(xùn)之中凉敲,我們學(xué)習(xí)了并查集衣盾,最小生成樹(shù),其中包括了克魯斯卡爾算法(從邊開(kāi)始搜索)爷抓,普里姆算法(從點(diǎn)開(kāi)始搜索)势决。還有最短路,分別包括迪克斯特拉算法蓝撇,弗洛伊德算法果复。在寒假這7天當(dāng)中,大概做到了可以手敲并查集渤昌,克魯斯卡爾虽抄,普里姆(不完全熟悉)走搁。并掌握了兩種并查集的寫(xiě)法,并且可以稍許靈活使用迈窟,也算并查集入門(mén)了朱盐。由于克魯斯卡爾是帶權(quán)并查集的改良,所以也算入門(mén)了克魯斯卡爾菠隆,而普里姆因?yàn)椴唤?jīng)常使用的關(guān)系,所以并不多熟悉狂秘。
而最短路里面的東西骇径,比如說(shuō)迪克斯特拉算法,由于是我由普里姆算法推倒過(guò)一遍者春,所以有點(diǎn)印象破衔。但是,沒(méi)怎么用所以想要很熟悉的手敲出來(lái)也可能是不現(xiàn)實(shí)的钱烟,因?yàn)閯?dòng)腦想還是需要一定的時(shí)間晰筛。
總而言之,其實(shí)學(xué)的東西都是一些思路拴袭,在這其中我覺(jué)得最重要的一點(diǎn)读第,就是經(jīng)過(guò)不斷的做題,從而獲得的代碼力的提升拥刻。從最開(kāi)始的寫(xiě)出一個(gè)并查集不斷WA不斷改錯(cuò) 怜瞒, 到后面的一遍過(guò),都能證明這一點(diǎn)般哼。而在找BUG的過(guò)程中我也了解到了持之以恒的重要性吴汪。而我也體會(huì)到了改了一下午BUG過(guò)后改出來(lái)的快感,雖然可能只是一個(gè)很小的錯(cuò)誤蒸眠⊙龋可是也能讓我實(shí)力有所提升。當(dāng)然楞卡,也讓我愛(ài)上了改BUG霜运。(笑)
希望在下半段的集訓(xùn)當(dāng)中能有更好的表現(xiàn),并且能有比寒假上半段更有效的提升臀晃。