您的位置:首页 > 其它

程序设计竞赛中的经验及技巧

2007-02-21 13:25 330 查看

程序设计竞赛中的经验及技巧(小结)

by jiaije999
比赛开始时先要通读所有题目,以ACM(大学生程序设计竞赛)为例,一队3人同时读题.粗略考虑下题目类型,可能用何种算法解决?使用什么样的数据结构?估计要用多少时间编码?多少时间调试?按照题目难易程度排序.按简单,熟悉--->陌生-->难的顺序完成题目。

对具体题目来说,可以先用一些实现简单,原理简单的方法写出一个可以解决问题的程序,估计时空复杂度,最坏情况的测试数据,针对你的算法漏洞的测试数据。

做题时先在纸上打草稿,写出数据结构,最好手工模拟下算法,不要上来就写程序。一次只写一题,不要三心二意!否则结果悲惨~~~。给程序加上屏幕输入输出语句,可以方便测试解题过程中的一些量。采用逐步求精(Stepwise refinement)的方法来测试每个函数,过程的逻辑功能!每次只测试一个逻辑部分,同样不要求快,贪多。保证不会被其他逻辑部分干扰。慎重使用全局变量,要保证它不会被误操作调试时已一定记得保存所有能运行的程序版本!!否则一旦出现意外哭都来不及哦.!调试是一门大学问~_~,经验是最重要的。注意平时积累多看看相关的文章。

面对紧急情况该怎么取舍?这些要你自己决定。例如调试时间严重超过预计时间,算法出现重大问题。。。(以ACM为例,一般我会保存程序然后下机,让其他同学作他负责的题目,我在纸上分析问题原因,只有一台电脑时间宝贵!)

写完代码一切OK^_^OK .提交代码时记得关闭所有测试输出!! 不然可以AC的题被罚时就不爽咯~~

小技巧

在允许范围内尽量是用暴力搜索解题!!(我得最爱)
遵守KISS(Simple is smart)原则
注意题目给出的数据范围
尽量使用内存,空间换时间!!
测试完成后不要删除输出语句,把他们注释掉(常用方法,以防不测)
起变量名时要有意义
多写注释,一般在每个函数名后写
没事不要用指针
不做没必要的优化,平时练习除外
多总结,每次参加完比赛最好写个解题报告~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: