總之是一個溫馨提示

DKACVenus發表於2020-11-06

前言

現在應該沒有人用 P / C 了吧……所以預設環境為 C++ / win7
之前看洛咕群裡關於這個能不能用那個能不能用討論很激烈,想著來稍微寫一點罷,希望有點用。
下列條目不分先後,想到什麼寫什麼。

正文

關於語言 / IDE

  1. STL 是可以用的,放心用,最近很多人都找出了 2009 年的比賽規定然後說這個不能用之類云云
  2. pbds、__gcd、auto、lambda 表示式等這些 C++11 的內容都是不能用的,編譯指令也是不能用的。你可以用 O2 測自己的程式速度,但千萬不要留著交上去。
  3. 建議用 bits/stdc++.h(不會被禁的,除非最近發了什麼檔案明確說不行)。因為你缺少 cstdio 庫就不能用 freopen,而編譯是可以通過的,用萬能頭就可以防止這種情況的發生。
  4. 在能力所及範圍內可以手寫 queuestack 等,因為 STL 常數較大,但不要像初賽那樣寫一個 O ( n ) \text{O}(n) O(n)map
  5. define int long long 是可以的(int main → \to signed main),而且個人建議在確保不會爆空間的情況下這麼開,以備不時之需。當然肯定不會爆 int 就沒必要開了。
  6. fread / fwrite 可,放心用。
  7. 如果有浮點數,計算的時候保險起見可以在每個數前面都加一個 (double),所有數字都加一個 .0
  8. 在 dev-c++ 中,點選 工具[T] - 編譯選項[C] - 程式碼生成/優化 - 程式碼警告 中有一個 顯示最多警告資訊(-Wall),可以開一下,有時候可以告訴你有歧義的部分之類的,防止出現奇怪錯誤。
  9. 不建議使用英文單詞作為變數名,有可能是保留字。可以採用縮寫(next → \to nxt)或駝峰(next → \to Next),一般是不會出事的。當然也有 MessageBox 這種奇怪東西,不過一般很難撞車。
  10. 陣列不要開小!陣列不要開小!陣列不要開小!

關於策略

  1. 這次不提供水和食物,可以稍微帶一點,畢竟 4h 長線作戰。
  2. 撤碩多去是有好處的,一個是讓自己清醒一下,另一個是可能遇到認識的 dalao(不過今年似乎管得更嚴了?)。
  3. 開場可以先把題都看一遍,然後想一下怎麼分配時間,難度一般都是遞增的,所以正開就好。如果直接想到正解了可以先寫正解,否則先寫暴力,有分總比沒分強。
  4. 有時間一定要對拍,一定要造邊界資料,鬼知道你寫的程式有沒有奇怪的 bug。
  5. 如果對正解沒信心,那麼可以對有信心的部分分特判。你的程式是爆不了 100k 的上限的,你的程式碼有多好看也不會給你加分,分數要緊。
  6. 檔名 / 輸出的字串不要看錯,多確認幾次。可以直接從 pdf 檔案中複製。
  7. 記得加 return 0
  8. 程式碼隨時儲存,對於不同的部分分可以創不同的檔案存,免得混亂或者丟失。
  9. 想不到暴力就貪心。
  10. 心態放好,不要被周圍的人影響,把周圍的人都當成麻瓜。
  11. 模板不要背錯。
  12. 多讀幾遍題,防止題意理解出錯。
  13. 草稿紙不要省,對找規律推方程的幫助非常大。mspaint 沒有草稿紙好用。
  14. 考試最後檢查一下檔案輸入輸出,跑一下樣例之類的,保證程式不會出奇怪的鍋。

歡迎各位補充。

祝所有人武運昌隆。

相關文章