ACM失敗之路

2022-02-13 21:59:51 字數 1747 閱讀 8254

校賽打完,已過四月,該是準備背起行囊,踏上考研之路了,自然,得先闊別一下acm了,想起這幾年acm路,感慨頗多,不得不一訴心腸,與大家分享一下我的acm歷程,如果有人能從此文獲取一些益處,那我就很欣慰了。

我是在大一的時候才知道acm的,當時還不讓帶電腦,同學帶了電腦,然後突然有一天推薦我上oj,我當時都不知道oj是啥,後來在機房上了一下才知道,原來是做題的**,然後我憑藉剛學的c語言寫了幾道水題,興趣一下來了,此後,我經常去機房做題,因為在機房帶的時間總是短暫的,所以我或者把題記下來,或者是列印下來,在紙上寫出**,再抽時間去機房敲到電腦上執行,再交題,有一些對了,有一些會錯,於是還得改,又拿回去改。就這樣,乙個本子很快就寫完了。於是,就這樣,我愛上了程式設計,愛上了acm。

14年算是進步比較大的一年,這一年學了不少演算法,水平也開始見長,順利的進到暑假集訓,然後幸運的獲得了區域賽名額,為什麼我說幸運,這是有原因的,我在隊裡負責資料結構和模擬等碼農類的題,什麼數學啊,dp啊,圖論啊,都玩不動,圖論還好點,搜尋也還行,結果最後一場網路賽,我這個數學若菜,居然推出來正確的公式,然後寫了一發,掛了一發,優化再交,過了,憑藉這題,我們翻身了,本來是排名末尾的,眼看就要沒戲了。就這樣糊里糊塗地進入到了區域賽準備階段。既然上天如此安排,那麼自有他的道理,我們後面只好加緊訓練了,到11月份,參加區域賽,由於最後一題腦子混亂,居然沒看出來一道幾何,本來版都帶了,於是遺憾拿銅,事實證明,出來混,總是要還的。不過好歹是拿過獎了。

區域賽完以後,就開始鬆懈了,然後一度沒有做過題,最後寒假集訓個人賽的時候由於dp真是沒入門,導致各種被別人踩,各種排名末尾,當時一度絕望,回家後的集訓也是,各種被人踩,在家裡看了很久的dp,題做了一點,不是很多,所以還是沒怎麼掌握。最後來到學校,就準備校賽了,慢慢的,因為自己保研希望有點小,還是選擇去考研了,於是比賽,題都沒怎麼做了,最後校賽成績也不是很好,就這樣,我差不多結束了我的acm之旅。

縱觀我的整個acm歷程,我覺得自己失敗的因素主要在以下方面:

1.數學基礎太薄弱

初高中以來數學就是很一般的那種,不太會用數學來分析問題,高數更是學的一坨屎。其實,個人感覺這個競賽拼到底拼的還是數學,數學沒那麼好的話,智商高也行,不過大多數人的智商應該都差不多吧,所以說,如果你感覺自己智商不是很拔尖的話,那麼還是把數學學好吧,不管你搞不搞acm,只要你是搞工程技術方面的,數學是最基本的技能了。為什麼數學那麼重要?舉個例子,乙個貪心,不用數學分析的話可能就靠靈感,感覺怎麼貪對就怎麼貪,貪錯了大不了再來,但是如果你用數學的知識推一下,你就會迅速地得到乙個正確的貪心方法,既不浪費時間,又能保證正確率,何樂而不為呢。

2.沒有與人多交流,走的彎路太多

這方面是乙個比較大的原因,開始的時候一心想著刷水題就是乙個例子,對待乙個可能不那麼容易理解的演算法,沒有攻克的決心,想著這個難,先學另外乙個吧。演算法學習也僅限於理解而已,沒有能夠很好的應用,滿足於刷一些模板題就夠了,總之就是一句話,中上等的題做得太少,思維鍛鍊不夠,**能力鍛鍊不夠。其實溯其根本,還是乙個不肯直面困難,不自信的問題。

3.浮躁

另一方面就是浮躁了,學東西總是浮在上面,浮沙怎可築高台。任何乙個技能或學科,都像乙個金字塔,塔基越廣,金字塔尖才能堆得越高,所以,基礎才是王道。

雖然我的acm之路失敗了,但是我依然不後悔我做了這件事,不後悔我選擇了這樣一條路,現在想想,玩acm的日子依然是快樂的。況且整個經歷給了我更多的思考,思考怎麼學習,思考怎麼做事,思考怎麼做人。

如果你是乙個正在玩acm的acmer,希望本文能夠幫助你。如果你不是,並且有你自己的想法,歡迎一起交流。^_^

2015.3.22

acm高階之路

一般要做到50行以內的程式不用除錯 100行以內的二分鐘內除錯成功 第一階段 練經典常用演算法,下面的每個演算法給我打上十到二十遍,同時自己精簡 因為太常用,所以要練到寫時不用想,10 15分鐘內打完 1.最短路 floyd dijstra,bellmanford 2.最小生成樹 先寫個prim,k...

ACM的學習之路

從小對會寫 的軟體工程師抱有一種敬畏和敬佩的態度,覺得 這麼有技術含量的東西,能夠操作地這麼行雲流水,能夠這麼隨意地玩弄於鼓掌之間,著實讓人望而遠嘆 但同時,我卻不能向那些大神一樣,做到這麼熟練,不論邏輯多複雜的題目,他們似乎都能用一種套路去解決 不能向那些大神一樣,做到舉一反三,學到一種演算法後,...

ACM之路 8 樹狀陣列

適用於 單點更新,區間求和 或者 區間更新,單點求和 假設有乙個陣列a,有兩種操作,1是更新某一項的值,2是查詢 l,r 區間的值,這是 單點更新,區間求和 我們先看下面的。從可以看到,c 1 a 1 c 2 c 1 a 2 a 1 a 2 c 3 a 3 c 4 c 2 c 3 a 4 a 1 a...