《算法竞赛——从入门到进阶》随笔(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 把宏函数写成普通函数

本章推荐例题:

扫描二维码关注公众号,回复: 8172454 查看本文章

P2482 [SDOI2010]猪国杀

P2586 [ZJOI2008]杀蚂蚁

 参考资料:
OI 赛事与赛制

全国青少年信息学奥林匹克竞赛(NOI)

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

女生学信息学竞赛是怎样一种体验?

猜你喜欢

转载自www.cnblogs.com/cspjs/p/12033136.html