ForeWord
六月六开始(话说,开始的日子真是个吉利的日子)到七月廿六,五十天整,终于将ACM在线模版整理完毕,想想还有点小激动呢~
话说,我为什么执着于整理这个模板呢?既费时又费力,差不多,五十天都在忙这个。
想来,原因挺多的,毕竟网上模版那么多,如果单单只是其中任何一条存在,我一定不会这样卖力整理。
最直接的原因,上一次的ACM竞赛,让我深深认识到了模版的重要性,也让我感到了不适,比赛时很乏力。
说起来不适,就不得不承认一点,我的知识储备量严重不足,不足以驾驭模版,至于另一点则是对模版不熟悉,无法快速查阅。其实还有第三点原因,这个原因只会出现在我这种人面前,那就是编码规范问题。
很多人,一开始就没有养成严格的编码规范,所以平时看到一些不是太规范的代码也没有什么不适,而像我这种执着于编码规范的人,已经出现了强迫症,看着那些不是太舒服的代码,很容易急火攻心。说起规范,其实有很多种,但是让人最一目了然的,我想一定不是那些能省则省的编码(这是我要自己重新整理的重要原因)。
这样,待到以后ACM竞赛时,我就可以导出此模版,打印好(^o^)/~那么竞赛一定会如虎添翼的,模版出奇迹嘛~~~
说起来间接原因,主要是两点,首先是,通过整理模版,我可以快速建立起知识体系,在整理的过程中,全部是手打,所以对模版的体系很清晰,这也成就了我的知识体系的雏形。其次,在以后的学习、刷题过程中,可以通过这个在线模版快速查找,出现问题和漏洞快速修改,当然也很希望有志同道合的人能够给我提出错误,帮助我完善这份模版。
其实,还有辣么一丢丢小心思是,我的CSDN排名可以提前很多……浏览量也在快速增加,这是一个令人兴奋的事-_-#
PS:为避免模版整理后重复性过高,使其冗杂,一律不添加头文件和命名空间。欢迎提出模版修改建议~~~
Index
分类细则
说起分类准则,我也是很头疼,毕竟对于很多算法,他并不是单调的,而是多方面的都挂得上钩。所以,从始至终,分类准则一直都是我很纠结的问题。
经过思量,首先分出比较主流的几类:Number
、Graph
、Network
、Structure
、Geometry
;
接着,考虑到C++是ACM的重头戏,而STL又是其中浓墨重彩的一笔,所以专门分出一类STL
来总结一下;
然后又分出String
一类,毕竟字符串相关算法也是挺多的啊;
最后,总得有一类Other
吧!
虽说,分类分好了,可是有的算法真的不知道归到哪一类更合适,因为总有些算法既涉及到数论,也会涉及到数据结构,或者其他情况也时常有。但是为了避免重复,我只好依自己拙见,把他放在了自己感觉最合适的分类中。
目录
STL 标准模版库
Number 数论
String 字符串
Graph 图论
Network 网络流
Structure 数据结构
Geometry 计算几何
Other 其他