【總結】經驗與教訓
阿新 • • 發佈:2019-01-27
程式碼查錯
- 認真讀題,比如題目的資料範圍。
- 觀察每個變數名是否有誤,每個型別是否有誤,每個運算子是否有誤(<,>,=,+=),規定的輸出格式是否有誤。
- 考慮邊界情況,0,1,-1,上限,下限。
- 與序列有關的題目要分清楚變量表示的是值還是下標。
- 考慮演算法是否有誤。
- 更改寫法,選擇更不易錯的方法去寫題。
- 推導排列的問題,注意如果已經推匯出了n-1項,那麼最後一項也就出來了。
- 常量陣列是否有誤
- 運算是否爆範圍.
- 輸出方案提前判斷是否有解.
思路引導
- 認真讀題
- 當輸入資料範圍很大但有除法關係時,可以考慮分類。
如輸入n,m<=1e9,可以列舉1<=n<=1e5,剩餘的列舉 m/n. - 輸入資料與輸入順序無關時,直接排序,不管為什麼。
- 遇事不決寫暴力,尤其是數學題。
- 把問題要求的算式列出來,然後用數學的方式去推導,會比空想有效很多。
- 和區間求和有關的東西,上字首和,推導算式,差分同理。
- 二分性質。
- 反向求解。
- 觀察結果的統一性,通過列舉結果將狀態數縮小(旋轉游戲)。
編碼建議
- 模擬題在上手之前提前想好資料結構與演算法流程。
- 當呼叫元素本身太麻煩(耗時久,不好表示,多維數字)時,建立索引。
- 先寫出能用的程式,思路會在寫的過程中不斷清晰,記住提前優化是萬惡之源。