• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-19  評論-1  文章-0  trackbacks-0
            在ICPC比賽中,個人能力方面,如果粗略地分的話,大致可以分為算法能力、代碼能力和查錯能力。那些大學才開始參加比賽的選手,寫代碼的基本功一般會比較扎實,主要瓶頸應該是算法能力。而對于OI轉ICPC的選手來說,代碼能力往往是最大的缺陷。隨著OI轉ICPC的選手逐漸增多,代碼能力的問題愈發(fā)暴露了出來。

            一、如何定義代碼能力

            Comars曾經(jīng)給代碼能力作過一個比較準確的定義。2004年暑假時,Comars曾經(jīng)說過:他認為150行以內(nèi)的題目,他的1Y率非常高,并且保持穩(wěn)定;而當代碼長度超過150行以后,1Y率就開始急速下降了。如果我們畫出一條1Y率的曲線的話,150行就是一個轉折點。我們不妨認為,150行就是Comars當時的代碼能力。一年以后,經(jīng)過努力,Comars把代碼能力提高到了250行。不過,這已經(jīng)是后話了。

            二、如何提高代碼能力

            我一直覺得寫程序和寫文章是一個對很好的類比。

            寫文章需要先從宏觀入手,構思文章的結構。寫程序同樣需要。一個好的結構,就是一個好的開始。一個好的開始,是成功的一半。
            一篇好的文章需要各種句式和詞藻的合理組合。體現(xiàn)到寫程序上來,就是一些單句以及三五行的小結構的熟練使用。這些都是需要平時總結和積累的。

            但凡文章寫得好的人,一定看過很多別人寫的文章。同樣的道理,多看別人的程序,用心地去看,也可以提高自己的代碼能力。
            我鼓勵隊員去看別人寫的程序,特別是像Comars這樣的選手寫的程序。從優(yōu)秀的程序中,我們可以體會別人良好的程序結構,同時也可以學到很多寫程序的技巧――三五行的小技巧。在和Comars做隊友的兩年時間里,我通過看Comars的程序,學會了很多小技巧。逐漸地,我覺得我寫的某些程序已經(jīng)和Comars有點相像了。
            那么,如果身邊沒有Comars這樣優(yōu)秀的選手可以借鑒,該怎么辦呢?其實沒關系。任何一個程序都是可以看的。一個程序,就算寫得再差,總還會有一兩個閃光點,要想辦法把它們找出來。另外,程序里寫得不好的地方,也要一一找出來。
            讀程序,從某種角度來看,就像讀史。好的歷史是用來借鑒的;不好的歷史則應該引以為戒。讀程序也是一樣,擇其善者而從之,其不善者而改之。

            三、謹慎地對待STL和SCL

            STL - Standard Template Library。在ICPC的選手中,STL是相當受歡迎的。的確,如果STL用得好,程序可以精簡很多。既提高了編程的速度,也提高了編程的準確性。
            SCL - Standard Code Library,就是標準程序庫。對很多選手來說,SCL可是命根子啊

            我覺得STL和SCL都不是壞東西,但是需要謹慎地使用。

            我向來不主張隊員一進隊就開始用STL(雖然這種現(xiàn)象普遍存在 )。我認為,STL的作用是錦上添花,而不是雪中送炭。比方說,一個heap寫得很熟練的隊員,我覺得他可以偷偷懶,用一下STL。但是,那些不太會寫heap的隊員,就不應該用STL里的heap。因為,他們真正應該做的是掌握寫heap的能力――這才是最本質(zhì)的代碼能力。
            學會用STL是件很爽的事情。但是須知有所得必有所失。如果過早地接觸STL,會讓你失去很多鍛煉代碼能力的機會。

            至于SCL,我的主張是盡量不用。
            不可否認,隊里確實有一些人SCL用得很好。但是,我至今仍然沒有見過一個SCL用得很好,同時有擁有很強的代碼能力的人。同樣是有所得必有所失,你平時習慣了去抄程序,必然少了很多自己構思程序的機會,從而影響代碼能力的提高。
            當然,我也不是完全反對去使用SCL,偶爾用一下也是可以的,例如在比賽中。但是,需要注意的是,一定要用自己整理的SCL。我見過有人拿著一本別人整理的SCL,雖然內(nèi)容很齊整,但是我沒見他用對過。因為這本SCL不是他整理的,他自己都不知道每個程序在使用的時候應該注意些什么,于是一用就錯。


            算法名言(含義深刻啊)

            1.算法的靈魂――數(shù)據(jù)結構+算法=程序

            2.剪枝是搜索的關鍵。

            3.可貪則貪。

            4.枚舉是最容易實現(xiàn)的,但也是最慢的。

            5.難題往往需要另辟蹊徑。

            6.算法并不是孤立的,而是可以結合在一起的。

            7.不做爛題水平也會下降,但不想難題永遠不會提高。
            posted on 2010-10-11 17:37 孟起 閱讀(456) 評論(0)  編輯 收藏 引用 所屬分類: 心得總結
            国产精品久久久久久福利69堂| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久精品免费网站网| 国产一区二区久久久| 国内精品伊人久久久久AV影院| 99久久精品免费看国产一区二区三区 | 99久久亚洲综合精品网站| 久久乐国产精品亚洲综合| 国产精品美女久久福利网站| 高清免费久久午夜精品| 久久精品国产2020| 国产成人精品久久综合| 精品少妇人妻av无码久久| 日产久久强奸免费的看| 国产高潮久久免费观看| 久久99国内精品自在现线| 区久久AAA片69亚洲 | 久久久噜噜噜久久中文字幕色伊伊| 久久超乳爆乳中文字幕| 久久精品人妻中文系列| 欧美激情精品久久久久久久九九九| 嫩草伊人久久精品少妇AV| 久久这里的只有是精品23| 精品久久久久久无码国产| 97久久香蕉国产线看观看| 麻豆一区二区99久久久久| 久久国产成人精品麻豆| 国产精品免费福利久久| 日产精品久久久久久久性色| 亚洲午夜久久久久久久久电影网| 国产精品久久久久免费a∨| 久久精品国产欧美日韩| 久久久久国色AV免费看图片| 国产女人aaa级久久久级| 狠狠人妻久久久久久综合蜜桃 | 亚洲国产成人精品91久久久 | 久久人人爽人人爽AV片| 久久久久亚洲AV成人网人人软件| 久久99国产精品成人欧美| 国产福利电影一区二区三区,免费久久久久久久精 | 久久久亚洲精品蜜桃臀|