ACM課程總結

2021-10-07 03:26:40 字數 1715 閱讀 4897

漸漸地,理解了貪心演算法,貪心標準選好了問題就會變得特別簡單,其實acm越難的部分也是秀的體現,難點解決出來的結果總是特別巧妙,典型的題型就是老師最開始講的吃金幣問題,活動安排問題,特別是吃金幣的問題,這是我真正意義上的學到陣列可以表示結果,然後就是貪心演算法大多都要用到sort函式,而用sort函式的時候大都要自己寫排序標準函式cmp,這個就可以根據套路來了。貪心標準的選擇也很有技巧,例如活動安排的問題,貪心標準就是誰的活動早結束就選誰,揹包問題的標準一般是價效比。有時候貪心問題不能直接看出來或者直接貪心不好做,需要將問題轉化,比如曾經有一道辦公室搬桌子的問題,就是先把房間號對映為走廊號,看每段走廊的占用情況找出被占用最多的次數就是需要搬運的次數。還有乙個是問買東西花的紙幣數什麼時候最少,什麼時候最多。我做完第一小問就不知道第二小問最多怎麼求了,我到網上看了別人的思路介紹豁然開朗,自己花的紙幣最多,不就是自己手上留下的紙幣最少嘛。所以看似兩個問題其實就是乙個問題。貪心標準的選擇就是重點難點,問題轉化的能力也很重要。

磕磕絆絆終於過去了貪心演算法,真的有好幾個題真的特難,但是很難理解,僅僅是吧**記了下來,不過我覺得隨著學習的深入,總有理解的時候。接下來如果沒記錯的就進入了揹包問題。主要有一下幾種揹包,0 1揹包,完全揹包,多重揹包。01揹包就是考慮放與不放的問題,01揹包有個典型的特點,**第二重迴圈是從大到小遍歷的。完全揹包比01揹包多了就是數量的問題,不僅要考慮選不選,還要考慮選多少。完全揹包**也有乙個特點就是第二重迴圈從小到大遍歷。而多重揹包與完全揹包的區別就是,完全揹包的物品數量是無限的,而多重揹包的物品數量是有限的,解決多重揹包的問題通用方法就是轉換為01揹包或完全揹包的問題。具體做法就是寫三個函式分別處理完全揹包,01揹包,以及多重揹包,在多重揹包函式中,如果商品的總價值和大於揹包容量轉化為完全揹包否則轉換為01揹包。動態規劃**最典型的特點就是要用陣列儲存每次的最優值,並用迴圈每次選出當前狀態的最優解。

在此期間還學習了一下二分,這個二分在一些時候還是挺好弄的,現在回想起來,真正第一次接觸這個二分的時候應該是是自學快排的時候。二分查詢演算法就是在乙個單調有序的集合中查詢元素,每次將集合分為左右兩部分,判斷解在哪個部分中並調整集合上下界,重複直到找到目標元素。使用二分查詢法非常關鍵的一點是乙個單調有序的集合,若不是單調有序,則需想辦法轉化成單調有序的,這個二分查詢法的花費時間優於直接按順序查詢,實際使用的時候,則需將問題所指的東西即答案,如果答案具有特定的範圍,並且驗證答案是否成立的函式具有單調性。則可以在範圍內對答案進行二分查詢,從而快速確定答案。至於三分查詢法則是二分查詢法的高階,隨實際問題而使用,三分查詢法就是將一組單調的先用一次二分查詢找到乙個mid,然後在mid和極值點再找乙個mid2,不停的縮小範圍,直到得出結果。

然後就是數論了,說實話一開始真的很懷疑學這個東西有啥用,不過學完之後過便再一次認識到學好數學對學好計算機的重要性。通過這種學習整數的性質,對於做題可以方便很多。就像費老師說過的,當我們做codeforces的時候,前幾個題會時不時的用道數論。事實證明這個東西很有用。像費馬小定理,尤拉函式,歐幾里得函式等等這些東西在一些有規律的題裡作用非常明顯。後來結課後又學了樹狀陣列,線段樹,單調佇列這幾個小知識點。

現在每次見到精巧的**,總會感到很過癮,憋了很久通過自己雙手最後ac**,能讓人飄飄欲仙,特別是第一次吧div2做出了第三題,真的讓人特別興奮,我想這一段acm課程學習的經歷,一定會對我接下來的專業課程學習有所裨益。有人說過:「大學生學習不能帶著一種功利心,選修課不能因為難就不選,要多學一點對自己有益的的課程「。我想這次的學習以後回想起來肯定意義重大。學無止境,砥礪前行,這個學期雖然學習acm的過程很虐,但虐得開心,看到了精緻的**收穫多多,這是我學習過程中寶貴的財富。

ACM課程總結

本學期所學的acm已經算是告一段落了,總體來說,對它的感覺是有喜有悲,喜的是從這裡學到了對待問題的思維方式,悲的是acm的相關題目還是不算容易,一道簡單題有可能還得花上一些時間方可ac,不過a過一道題後的喜悅是不言而喻的。廢話不多說,下面來對本學期的acm課程做個總結。三 動態規劃 基礎知識 什麼是...

ACM課程心得

ios sync with stdio false 在c 中的輸入和輸出有兩種方式,一種是scanf和printf,另一種是cin和cout,這兩種方法看似,實則相差很大 一.首先,scanf與printf使用的標頭檔案是stdio.h cin與cout的標頭檔案是 iostream 二.兩者在效率...

ACM課程心得

課程上介紹到了記憶化搜尋 1.記憶化搜尋的實質是動態規劃,效率也和動態規劃接近,形式是搜尋,簡單直觀,也容易編寫,不需要進行什麼拓撲排序了。可以歸納為 記憶化搜尋 搜尋的形式 動態規劃的思想 在數塔例題中的應用 在求max 2,1 max 2,2 的時候兩次呼叫函式max 3,2 也就是說,函式ma...