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題,即使答案不可能全對,也可以得分。
就這樣~