2018年ACM山東省省賽總結+經驗之談
賽前10天,找了經典的題目,每天做3-5道,以比賽的形式每天晚上打組隊賽,一起做題。但是最後的實施情況並不是很好,每天也就做1-2個。第一是題目難度全部為中等難度題目,並且時間緊張,對隊友的能力把握不夠清晰;第二因為實訓原因,沒有進行過專題的訓練,直接進入了組隊訓練賽。
組隊訓練一定要按照比賽來,不能上網,不能翻譯,不能看解題報告。其中一定要有一個主心骨,平常訓練不要偷懶,板子也要敲一遍,不能複製,敲程式碼一定要保證速度,最重要的是保證正確率,正確率高了,打字的速度自然也就快了。
專題訓練,就以每人的強項來吧,兩人一個專題,一次三個專題,3-4天為一輪,就可以了。
專題訓練也好,組隊訓練也好,從組完隊就要開始了,專題訓練可以輕鬆進行,但是組隊訓練一定不能防鬆,而且每天都要有,不能停,這樣很快就可以熟悉並且敲定比賽時的策略。
這兩種訓練最好持續一個月以上,效果最好。
心態一定要調整好,熱身賽時心態不好,並且有些困~,結果就0了,第二天,調整的不錯,沒有第一天那麼迷了。
比賽一開始,首先一人先將一些常用程式碼,模板,程式碼框架,輸入檔案等建好,這個時間大概第一個水題的題意應該已經掌握,討論並開始切題。
比賽中,一人負責程式碼的編寫,要求敲程式碼速度快,快速理解水題,另外一人快速找出下一題,進行翻譯,最後一人首先寫出3-5組測試資料,然後與另一名隊員進行討論下一題,如主程式碼手對當前所敲的題掌握不夠透徹,則出測試資料的隊員在一旁協助主程式碼手一起完成該題。
主程式碼手要求坐在三人的兩邊位置,方便剩餘兩人的討論。也方便其中一人與程式碼手討論。
比賽時要關注榜單,但是不要去翻看自己或同校的位置,目的確定下一題,2-3小時內切掉水題,開始準備中等題目,注意不要被帶歪榜,要關注提交的的統計,一般在榜單的開頭或結尾。
程式碼敲完後,使用測試檔案進行測試,不要一遍遍手敲測試資料,浪費時間,一旦出現問題,如果能夠10分鐘內仍沒有搞掉錯誤的原因,快速列印程式碼,從紙上debug,由另外兩人開始下一題程式碼的編寫,或者由其中一人在紙上找錯誤,另一人與程式碼手開始敲下一題。
距離比賽結束一個小時,這個時候對於我們已經很難出題了,這個時候可以把已經理解的題,暴力一發,效率不高的演算法思路也可以搞一搞,這個時候三人就集中一題即可,當然多題有思路就都寫一發,如果完全有思路,並可以演算法實現,那麼就不能防鬆,一定要集中切題。就算是沒有思路,以暴力寫題,也要注意優化,明顯的優化一定不能放過。馬上結束了,心態一定不能崩,要沉下心,穩住。
這次比賽最大的問題就是除了水過的題,一道題也沒有看懂,剩下的近兩個小時全程划水。英語還是太弱。這次的比賽代表不了什麼水平,f題的划水,讓我們有幸前進了幾名,但是真實水平都在哪裡。最後這次的比賽很幸運。