當前位置:編程學習大全網 - 網絡軟體 - 我想參加noip,有沒有從零開始的教材。pascal 怎麽學才能夠格參賽?

我想參加noip,有沒有從零開始的教材。pascal 怎麽學才能夠格參賽?

(全手打,1434字,很累啊,希望對妳有用)

壹般先學pascal,再學c/c++和JAVA

我就是參加NOIP的,拿過壹等獎,妳可以聽聽我的意見

其實學好NOIP,不需要什麽書,只要壹個老師+壹個題庫(如tyvj)就沒問題了

要學好NOIP,個人覺得分三塊(把我下面講的東西全學透,要1-2年)

①語法:學好語法是基礎!學好了語法,才知道語言如何使用,這個不用我說吧

②數據結構(數據結構是脫離語言的,也就是說這些數據結構每個語言都好實現):這是壹個很抽象的東西,有 線性表、棧、隊列、堆、數、圖、串、集合 等等。

分為4種:線性結構(壹對壹,如 棧、隊列)、樹形結構(壹對多,如 樹)、離型結構(沒有連接)、網狀結構(多對多,如 圖)

像棧就是壹種FILO表,只運行在壹頭進行輸入輸出操作,應用在 表達式求值、撤銷恢復操作上面

隊列是FIFO表,允許在壹頭進行插入操作,另壹頭錯刪除操作

樹 就復雜了 樹和二叉樹是兩種概念,具體的自己去看書吧

二叉樹有許多特殊形態,如滿二叉樹 完全二叉樹 哈夫曼樹 最優二叉樹(哈夫曼樹不等於最有二叉樹!這點有許多人弄錯。因為哈夫曼樹不壹定是二叉的)

二叉樹的三種遍歷方式壹定要會:前序遍歷(也稱先根遍歷)根左右, 中序遍歷(也稱中根遍歷)左根右, 後序遍歷(也稱後根遍歷)左右根

圖就更復雜了,分 連通與不連通 帶權與不帶權 有向與無向,所以就有了 (不)連通有(無)向(不)帶權圖這種說法 還有什麽強連通圖,弱連通圖的,自己看書吧!

③算法(算法是脫離語言的,也就是說這些算法每個語言都好寫):

1.低級算法(立意上的,就像初等數學和高等數學):窮搜、深度優先搜索(DFS)、廣度優先搜索(BFS,也稱寬度優先搜索),是三種不同的遍歷方式

2.高級算法:貪心,分支,動態規劃(DP)。其他兩個不介紹了,就介紹壹下動態規劃吧!

動態規劃:記憶化搜索,利用以前搜索留下的數據,加快解決多階段決策最優化問題的速度。要能動態規劃,問題必須滿足兩個條件(我背了好長時間才背出來)

①:最優化原理(也稱最優性原理):無論過去的狀態或決策如何,對於當前的決策所形成的狀態而言,余下的諸決策必須構成最優策略。

②:無後效性:壹旦壹個狀態的決策確定,則此後過程的演變不再受此前各狀態及決策的影響,當前狀態時此前歷史的完整總結,此前歷史只能通過當前狀態去影響過程未來的演變。

學DP壹般從背包開始,背包壹***有8個:01背包、完全背包、多重背包、混合三種背包、二維費用背包、分組背包、有依賴的背包、泛化物品背包。

然後再學樹形動態規劃

還有排序算法:冒泡排序,選擇排序,插入排序,快速排序,堆排序,希爾排序,基數排序,序數排序,桶排序,鴿巢排序,二叉樹排序(應用二叉排序樹),雞尾酒排序(就是雙向冒泡,在壹次初賽的完善程序裏出現過)

還有數論算法(不展開介紹了)

圖論算法:

最短路(顧名思義,就是壹個點到另壹個點的最短路程):迪傑斯特拉(Dijkstra)、弗洛伊德(Floyd)、SPFA(國人設計的,很不錯)等等 還會要解決SPFA的負權回路問題 這幾個算法都是解決單源最短路徑問題的,就是壹個點到所有點的最短路)

最小生成樹(應用在無向連通圖中,就是拿掉壹些邊,在保證圖連通的情況下,使得剩下的邊權值之和最小):普利姆(Prim)、克魯斯卡爾(Kruskal)

關鍵路徑(在生產生活中應用很廣,註意關鍵路徑之前壹定要拓撲壹次!)、拓撲排序(可用於是否有環路的檢測)、網絡流等等

如果以上妳都會了,那麽恭喜妳,妳參加普及組和提高組的NOIP已經沒有問題了!

可以繼續學 雙向深搜、雙向廣搜、周界搜索、叠代加深搜索、叠代加寬搜索、A*廣度優先啟發搜索、A*叠代加深搜索 等高級的算法,去參加省賽甚至國家比賽。

  • 上一篇:壹加手機出現crashdump和硬盤有關系嗎
  • 下一篇:什麽是二方連續圖案?什麽是四方連續圖案?
  • copyright 2024編程學習大全網