CSP/NOIP 防爆指南


CSP/NOIP 防爆指南

一、文件操作

  1. 使用 freopen 進行文件讀寫。使用格式:

    freopen("test.in","r",stdin);
    freopen("test.out","w",stdout);
    

    注意該語句存在於頭文件 cstdio 中,一定寫對文件名。

  2. 注意加足加夠頭文件。(dev 比較欠,可能會自動加頭文件。)

  3. 允許使用 C++14 和以下划線開頭的函數(意味着 __int128__builtin_popcount()__builtin_ctz() , 都合法了)。

  4. 聽從監考老師要求,根據老師的要求存放文件。(一般是在 D 盤根目錄下,以 SD-00000XXX 為名字建立一個文件夾,文件夾下分四道題目的文件夾,這四個文件夾內各自存放一個源程序。)

  5. 使用萬能頭時注意變量重名,如 y1 。

二、常見問題

  1. 計算數據大小,是否爆 int ,注意 %d 與 int 對應, %lld 與 long long 對應,改 float 為 double ,%lf 與 double 對應。可以引用 limits.h 頭文件,輸出 INT_MAXLONG_LONG_MAX 來查看 int 和 long long 的最大值。int 大約為 2e5 , long long 大約為 5e18 。
  2. 注意定義數據的類型。(小心 double 定義成 int , int 定義成 char 等問題。)
  3. 注意 MLE / RE ,一個 int 為 4B , 一個 long long 為 8B , bool 與 char 為 1B ,不要開小導致 RE 或 開大 導致 MLE。常見的 RE 錯誤還有除以 0 ,函數遞歸死循環。
  4. i++i-- 是先調用后加減,++i--i 反之。注意 <= 與 < , >= 與 > 。
  5. 位運算優先級問題。
  6. 全局變量和局部變量沖突問題。
  7. 涉及取模的問題,能多模不少模,需要卡常時可以采取減法。涉及乘法建議強制轉 long long 或 乘 1ll
  8. 二分和遞歸邊界。
  9. 各種模板背熟、盡量理解原理(為了魔改)。

三、比賽策略

  1. 本條目針對 CSP/NOIP 常見題型。
  2. 大模擬:權衡時間,取性價比高的部分分。
  3. 數學、規律題:證明 or 猜測。(如小凱的疑惑。)
  4. DP、圖論:重中之重,屬於主要做的題目。
  5. 永遠記住暴力和騙分。
  6. 在空余的時間對拍、自造大樣例確保程序正確性。
  7. 最后 30min 檢查程序是否正確提交。

四、考試狀態

  1. CSP-S2 是下午比賽,因此中午不能吃太飽、建議小睡一會。
  2. 考試時允許帶食品,建議巧克力。
  3. “廁所是 OIer 靈感的源泉。”洗手間可以讓人冷靜下來。
  4. 一定合理安排時間,不能炸心態,不能死磕一題。

以上根據作者諸多爆炸經歷總結得出。

\[By \text{ } ahawzlc \text{ } 2021.10.17 \]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM