1樓:網友
基礎的演算法:像排序(快排和冒泡就夠了),模擬,貪心,列舉,染色(floodfill)..
動態規劃:很重要,要多做題,多見題型。
遞迴:回溯什麼的,要會寫子程式。
遞推:一些數字遞推問題,要善於總結公式。
二分:要有分治思想。
其他:什麼二部圖,並查集,圖論中一些演算法如最短路,尤拉回路,等比較實用的演算法。
資料結構:1.連結串列,其實就是一維陣列,但連結串列的插入,刪除等操作也是有技巧的,就像noip2009的靶形數獨,就可以用dancing links這種神奇的連結串列中資料的插入和刪除來大大優化時間。
2.棧:針對先進後出的問題,像火車進站。
3.佇列:針對先進先出的問題,廣搜,spfa常用。
4.樹,包括二叉樹(最常用),多叉樹,「森林」等,特別是二叉樹,因為只有兩個叉,因此對於狀態分立的問題就可以用遞迴和樹結合儲存,在通過遍歷得到特殊結果,這個在二叉樹排序中很經典。
5.堆,和樹有相似之處,對一些問題的優化作用很好,不過這些優化演算法一般比較高階,像dijskara的堆優化等,可以上網搜一下。
6.圖,圖論必修。所有圖論問題都離不開圖,個人也認為比較難學。
2樓:哈密瓜俱樂部
動態規劃,基本至少1道,有的難點的話簡單的包含一些,難得也包含。
排序,基本功,看熟練度。
資料結構,二叉樹,佇列,棧。。演算法的基礎,必須掌握的。
這些基本能拿一等了如果能刻苦訓練1年。有天賦半年也可以。
準備noip需要掌握哪些高階演算法和資料結構
3樓:銷
看你的目標。
來200~300:會源。
語法,簡單模擬,dfs和bfs爆搜,簡單dp,基礎資料結構棧佇列連結串列,基礎演算法二分法啥的就夠了,演算法不會沒事,**能力一定要強,暴力都寫對,一般省的省一穩了。
300~400:跟200~300差不多,但是不僅**能力強,基礎演算法也要全熟練,而且要會一些簡單的數論和組合數學。
400~500:圖和樹的演算法也要掌握好,還有一些高階資料結構(線段數,樹狀陣列,雜湊表,並查集之類)
500以上:非常綜合,演算法方面差距不大,但是需要很強的思維能力,**能力,心理素質等。
像noip這種比賽,知識點不是非常多,但是一定要掌握熟練,理解深刻,並且最好有豐富的考場經驗。
我去年noip就吃這個虧了,第一次參加,預計400,看了題面發現也差不多能拿400,但是考場經驗和**能力不足,最後才190分,當時我的演算法能力,完美髮揮確實能拿400,但是完美髮揮很不容易,考場上把程式寫出來,評測也不一定對。
求資料結構與演算法分析,求《資料結構與演算法分析 C語言描述》原書第二版的中文版課後答案,萬分感謝
知兒網團隊 資料結構與演算法分析 c語言描述 原書第2版 pdf 您好,資源不易找,請及時採納。謝謝。求資料結構與演算法分析 c語言描述第二版 mark allen weiss 中文版的習題答案 10 混太極 我有答案,郵箱給我發給你。給分哦。 瘋丄子 王紅梅資料結構答案.doc要就發郵箱 資料結構...
資料結構和演算法不一樣嗎,演算法和資料結構有什麼區別??
不一樣。資料結構,無論複雜或簡單,只是資料。演算法是計算機可執行的數值計算方法,它加工資料,產出資料。資料是原料和製成品。演算法是工廠,是生產流水線。演算法和資料有關,但兩者不一樣。蛋糕廠同雞蛋,麵粉有關,但蛋糕廠不同於原料。 碼寶寶呀 這個肯定是不一樣,有區別的。資料是一切能輸入計算機中的資訊的總...
資料結構 設計演算法用單連結串列驗證等差數列 25
資料結構 設計演算法用單連結串列驗證等差數列 該程式首先建立了乙個單連結串列,連結串列中儲存了一組整數序列,並將其作為引數傳遞給isarithmeticprogression函式。該函式遍歷整個連結串列,計算相鄰兩個節點之間的差值,並儲存在新連結串列中。然後,它遍歷新連結串列的所有元素,如果有任何兩個元素不相等,則說明...