计算机比赛技巧.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[推荐]比赛技巧 有些技巧 大家分享 关于调试和测试: 1.下面是几种比较常见的错误: 1.输入输出格式错误 2.数据类型错误(尽量用大的类型) 3.范围检查错误(可以稍稍加大上下界) 4.变量名称错误 5.漏语句(看事先设计好的变量是否都用上了,然后看每个模块是否实现了应有的功能,是否完成了接口) 2.我们应对于每道题设计充分的测试数据,并保留那些比较具有代表性的测试数据,以便于优化的时候比对. 3.一定要记住删除屏幕输出! 4.最后一定要记住关闭程序中用于临时调试的特殊设置和语句! 5.输出数据的每一行(包括最后一行)必须以一个换行符结束,行末不要保留多余空格。对于每一道试题,在相应的目录中都有一个格式检查程序来检查输出文件格式的合法性。该程序的文件名是:shortname_check。格式检查程序仅仅检查输出文件名的正确性和文件格式的合法性而不检查结果的正确性。检查结果显示在屏幕上。 6.如果领队或参赛选手对评测结果有异议,可以填写相应的表格,并在评测结果公布后的三个小时之内提交评测委员会申请复议或复评。当领队或参赛选手对复议或复评结果仍有异议时,应提交NOI科学委员会仲裁,并以NOI科学委员会的仲裁结果为该项评测的最终结果。 7.调试的时候,一定要钻输入文件的牛角尖,考虑到各种情况。 8.调试的时候,常常可以编一个非常非常易编的程序,采用算两次的方法,不过前提是必须保证正确。 9.Writeln是Fp中最笨但又是最准确的调试方法。 10.调试时每发现一个错误,都最好浏览一下整个程序,看是否有类似错误,这样非常有效! 11.在每一处可以中止程序的地方,都要看一看是否需要close file. 12.程序出现不确定性的问题,如对于同样数据,有时死机,有时不死机,但多半都是随机模块有误! 13.指针出错常常是出现了Nil^.Next 14.递归程序的调试应该使用F7(F8)+Call Stack,尽量不要用F4。 15.不要只顾埋头拉车,要抬头看路。当被一两个子程莫名其妙的错误弄得晕头转向的时候,记住:很可能错误在其他地方。 16.读写文件之前才打开文件,操作完毕立即关闭。 17.每改完一个错误要想想是否改正确了,是否改彻底了,程序中(特别是有Paste的地方)是否有相同错误。 18.很多题目最易忽视的就是初状态=末状态的情况,还有初状态和末状态存在可操作的决策。(如Mars Explorer) 19.多考虑一些特例,在这方面认真些,全面些,仔细些,常比多考虑些时空上限划算得多。 20.编函数的时候千万别忘了给函数赋返回值,否则会引起随机性错误。 21.调试语句一般和上下文保留一空行,最好加上注释,并且一定记住在最后删除。 22.中途输出后结束一定要记住Halt 23.Byte,Shortint调试会以String类型出现,第一位以字符串长处理,遇到#0中止。FP和RHIDE中皆如此。 24.FP中的Extended类型有时候变量值未改变。 25.调试和测试的时候一定要充分考虑到各种边界和特殊情况。 26.自测时千万不要忘测数据上限,主要是看是否会超界。大半错误均源于此!之后仔细察看Const中的数。 27.大数组处理很容易出错,所以尽量避免开过大的数组及其调试。 28.多维数组的调试RHIDE比FP Bug还多,而大数组多元素的查看可考虑使用RHIDE 关于算法 1.关于复杂度涉及logN的算法.logN常常是因为二分,树,Heap,排序等造成的,而且有一点应该注意到,logN更接近一个常数,而不是N. 2.涉及矩阵的统计问题,通常而言,降维策略是非常有效的,而且常常是在外层枚举用土方法,内层枚举使用优化过的方法。另外,用O(N*N)枚举出Y1,Y2,然后考察之间夹的矩形是非常常用的方法。 3.涉及01串的问题,都不要忘记位运算和压缩,同时也要小心。 4.对于判重问题,关注最小表示。 5.有序化的处理常常比无序的简单,所以,对于想不出算法的题目,先有序化! 6.对于涉及子序列之和的问题,如NOI Sequence ,CEOI Parity,BW,常常化为第一位到某一位的和。 7.大数据量的题目,有时候分多次读入数据会非常有效 8.对于一边明显长于另外一边的矩形问题,常常是基于短边的指数化或者是阶乘算法,而基于长边的O(N)或者O(N*N)的算法。 9.我们应该注意,许多求割点的题目是求给定两点间的割点,而不是普遍意义上的割点。 10.没有回溯的搜索是最成功的搜索。 11.如果你的算法在最大规模的时候要爆,但是最大规模的数据非常难设计,那么就不要管他,设计一个稍次一点的算法就行了。 12.尽量让程序不做已做过的事和显然没有必要的事,也不要解决无用的子问题和对结果进行无意义的引用。 13.A*算法的估价函数一般而言要保守些,不

文档评论(0)

yan666888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档