相信很多人都是對程式設計感興趣進而才會進入acm這個坑的吧。但是實際上,要在acm這個坑里學出點能力來,我想大概就是兩個:自學能力和邏輯思維能力。
先說說自學能力吧。從c語言會一些簡單的程式設計開始,到具有比較紮實的基礎功,就像熬湯一樣,是乙個比較漫長的過程。如果要問需要刷一些什麼樣的題目,簡單字串處理,模擬,簡單數學和貪心。這些題目或多或少刷一些,在你的腦子裡就會形成一定的邏輯思維定勢了。並且你也會對常見的問題處理駕輕就熟了。但是千萬不要高興,因此從這一步邁出之後,就會陷入乙個瓶頸——演算法。演算法是乙個很廣泛的概念,acm演算法簡要概括就是動態規劃、搜尋、數論、圖論、計算幾何、字串、資料結構這幾大類。但是每一類都十分龐大,其實你只要看看國家集訓隊的**就知道自己有多菜了。自學演算法,理解演算法,變通演算法,這是不可繞過去的三個步驟。全部都需要自學能力。
其實演算法很難,但是入門卻是不難的。你會發現要不了多少時間,就能知道這些演算法如何使用,甚至可以記住模板了(看起來現在自己已經很高大上了)
但實際上乙個人在acm的高度不是學了多少演算法,而是對一兩種演算法掌握有多深。學了沒多久你就會發現,如果你不深度學習一兩個演算法的話,比如動態規劃,比如搜尋,你就發現,你做的題目始終都只有那幾個。再難一點的題目你必須要看題解才做得出來!這就是你和別人的差距!這就是你和別人不同的高度!
接下來就需要說道邏輯思維能力了。這是乙個比較抽象的概念,待在acm的人應該深有體會。碰到乙個題目,知道是什麼意思,可是就是想不出該怎麼解決。或者知道用什麼演算法解決,但是就是想不出怎麼實現。這實際上是乙個內功性地問題。就像習武之人必練內功,內功不深武功不高一樣。在平時訓練的過程中一定要注重邏輯思維的培養。這比學一兩個演算法重要的多。
其實演算法就像武功秘籍,武功秘籍有很多,但是武功高的人卻不多。這是因為學習武功秘籍裡面的武功人很多,也就分了很多高低層次。同樣,模擬回來,學習演算法的人很多,但是也分了很多高低層次。你對演算法掌握的如何,就在於你對這一類演算法的理解有多深。
我花了差不多乙個月的時間給校賽出了八道原題目,其中不涉及演算法,很多都是考察邏輯思維能力和對問題的處理能力。我慢慢發現,乙個人的邏輯思維能力跟演算法並沒有必要的聯絡,你不學演算法照樣可以邏輯思維能力很強。就像乙個不會武功的人內功照樣可以很深厚。但是演算法卻是檢驗邏輯思維能力高度最好的標準。因為演算法難,難在鑽研。其實演算法並不在於學,而在於深究。只有深究演算法了,才能把自己的潛力挖掘出來,才能提高自己的邏輯思維能力。
慢慢摸索了這麼久,才明白為什麼acm對數學要求那麼高。因為只有數學底子好的人,才會有相當的毅力在演算法海洋裡面刻苦鑽研。演算法全部靠數學的不多,但是靠這種毅力卻相當多。沒有毅力,很難再一類演算法中有一定的高度。也就很難在大型比賽中取得成績。
所以,在以後學弟學妹們的學習演算法之路上,我想提醒一下的是。學習演算法,千萬不要貪多。要有毅力有恆心,有足夠的鑽研精神,在一兩類中有自己的獨特的高度,這樣才是真正地把acm搞好了。
題目數量不在多,而在精。勤於總結,每做一道有收穫的題目,就把它寫成一篇部落格。每一段時間鑽研一類演算法有一定收穫後,寫一些自己的見解。循序漸進,就會慢慢提高。
做任何事情都不是那麼簡單,特別是像搞acm這樣如同科研一類的事情,要沉得住氣,要敢於挖掘自己的潛力。
加油,寫給每乙個正在acm這條道路上努力奮鬥的人!
深度學習的一點點一點點知識
我們手裡有大量的x和y,求權重訓練的是權重資料樣本 xwy 身高0體重0 血型0.3 腳指頭0.8 一組x計算出對應的乙個y 計算過程是w 下面的就是最基礎的公式 我們已知資料是大量的x和y 希望通過 西塔 來獲得w 我們的學習才剛剛開始,首先需要理解的是與門 x1x2y0 0001 0100 11...
一點點感想
寫在這喧囂與寂寞的世界 今天我與chen在風初停的早上跑去借書,借了安妮的 清醒記 兩本三毛的書和一本yilan的旅行與味蕾的書。從圖書館出來,風似乎有些冷,想到又要到那陰冷的梅花館坐在又涼又硬的椅子上上一節乏味的數學課我們便都不約而同的想到了逃課。帶著心裡的負罪感我們躲進八食取暖。無意中我們嘗到了...
一點點感悟
這兩天一直在努力的調整狀態,考慮了很多,也想通了很多,因為看開了,所以狀態也好了很多。明白了,一件事情的兩面性,壞的一面會使自己痛苦不堪,好的一面會使自己心情愉快。看了一篇文章,感觸很大,裡面有很多啟發自己的語句。二十幾歲的人,除了愛情之外,還需要有一項能使自己生活的本領 要把自己的感觸 心情和生活...