1. 程式人生 > >CCF經驗技巧總結

CCF經驗技巧總結

一、題型篇

CCF考試歷時4個小時,5個程式設計大題,每題100分,下面,先讓我們來了解一下它的題型大體是怎麼樣的吧。

1.暴力破解題。

      第一題還是給大家看到了自己能得高分的希望滴(雖然不知道後面會不會很難- -),常見的出題方式是給定一個總數n,第二行給定n個數,讓大家暴力去破解一下這個題目,得出答案即可。要注意的是,再提交自己的程式碼前一定要仔細測試,找出其中的臨界點和易錯點哦。給出其中一些典型題目的連結。

2.S T L容器模擬大題。

      第二題開始就到了真正考驗大家的時候了,一般情況下也是一道模擬題目,給定一些資料和操作,要求大家實現這個模擬的過程。第二題也沒有用到過很難很難的演算法,各位小夥伴必須要把心態放好。大體思路如下:

(1)選好儲存結構,理清題意。

(2)問題分解,逐步解決。

(3)能暴力a儘量暴力a,不要為了追求程式碼的簡潔忽略實際操作難度。

(4)一定要注意陣列中的越界,變數的命名和使用,在for迴圈以及矩陣型別的題目中極易出錯。

(5)書寫的邏輯出現錯誤

如:找到一個數組中位置在最右下的元素:

看下面的程式碼:

for(int i=0; i<4; i++)
        for(int j=0; j<4; j++) {
            scanf("%d",&picture[i][j]);
            if(picture[i][j]!=0) {
                if(i>i_max&&j_i_max)
                {
                    i_max=i;//i_max和j_max用來儲存最右下角的矩陣的位置
                    j_max=j;
                }
            }
        }

乍一看是不是覺得好像就是這樣?但是我們看,如果初始時 i_max=2,j_max=3,

       這時候過來一個元素i=2,j=3,那麼這個i_max,j_max會被改變嗎?NO!建議大家寫完程式碼後,多質疑一下自己邏輯思路的正確性,多測試一下自己的程式碼。

3.String型別模擬題。

這是CCF噁心題目的開端,真的感覺出題人要帶我們體驗一下人生的大氣大落--|||。

話不多說,先上思路:

(1)儲存結構,儲存結構,儲存結構,這個真的很重要!!!簡單才最美麗害羞

較難的有,多層結構體巢狀操作。

(2)讀取常用操作。

getline(cin,str)//讀取一行string型別

gets(str)//讀取一行,char[]型別

cin>>str//碰到空格即結束讀取

(3)注意字元陣列的越界。

(4)string和char的型別並不相容,不要用混。

4.圖論。

圖論型別的題目真的還是比較區分人的,你要問樓主是怎麼知道的,我可以很驕傲的告訴你,我就是那個被篩出去的人,嗚嗚難過

思路:

(1)審題,理清題意,選好儲存結構,一般圖論題用多維vector陣列配合結構體儲存。

(2)想清楚題目的考點,一般的考點有:

最小生成樹、迪傑斯特拉算符,並查集,DFS,BFS暴力搜圖等。理清考點後,才比較容易下手。

(3)注意多維陣列的使用,一維不行用二維,二維不行用三維,特別是涉及到的元素比較多的時候,思路應該多往這邊靠。

5.容易犯錯誤的地方。

(1)提交前一定檢查是否有編譯錯誤。

(2)是否有越界的情況,這會導致執行出錯。

(3)實在不會寫的題目,可以嘗試暴力A題,即使答案不可能全對,也可以得分。

就這樣~