《算法競賽——從入門到進階》隨筆(1)


 第一章 算法競賽概述 
算法競賽(程序設計競賽)是培養傑出程序員的捷徑。


 

在國內眾多競賽中,面向中學生的程序設計競賽有全國青少年信息學奧林匹克競賽(NOI),最具影響力的面向大學生的程序設計競賽有ACM-ICPC(國際大學生程序設計競賽),CCPC(中國大學生程序設計競賽)

培養傑出程序員的捷徑:1.編寫大量代碼; 2.豐富的算法知識; 3. 計算思維和邏輯思維; 4. 團隊合作精神。

算法競賽入門: 1. 競賽隊員主要的學習方法就是“刷題”;2. 反思總結(模板學習)

天賦與勤奮。天賦決定上限,努力決定下限。

建模能力。模板非常有用,其重要性主要在於幫助參賽選手理解經典算法,而不一定能用在賽場上。真正的學習是掌握算法后面的思想,而不是只會背算法。在學習時不要追求學到的算法的“數量”,而是要掌握其“思想”。很多算法的思想其實是相通的。從這個角度出發也可以比較好理解“質”> “量”。

提高編程速度,最根本的還是要通過大量練習,提高編碼的熟練程度,“無他,但手熟爾!”

本章代碼

 1 // 輸入結束的方式
 2 
 3 while(~scanf("%d %d",&a,&b))
 4 
 5 //在競賽時,一般不建議用判斷EOF的方法。
 6 // 輸入與輸出效率
 7 
 8 // 在C++語言中,輸入和輸出常用的語句是cin、cout,優點是很方便。
  // 但是需要注意,與scanf(),printf()相比,cin、cout的效率很低,速度很慢。如果題目中有大量測試數據,可能導致TLE。
9 10 //編碼技巧1 11 typedef long long LL 12 13 那么 long long a=123456789; 14 變成簡潔的: LL a=123456789 15 16 //編碼技巧2 17 最好不要用宏。不管是宏定義還是宏函數,都容易出問題 18 不要用#define 定義常量,而用const 定義常量,例如 19 20 const int MAX = 1000005; 21 22 把宏函數寫成普通函數

 

本章推薦例題:

P2482 [SDOI2010]豬國殺

P2586 [ZJOI2008]殺螞蟻

 參考資料:
OI 賽事與賽制

全國青少年信息學奧林匹克競賽(NOI)

智商在人的成功中起多大作用?

女生學信息學競賽是怎樣一種體驗?


免責聲明!

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



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