兰州 电子 网站建设,建设茶叶网站目的,网站技术开发,合肥市网站建设对于NOI来说#xff0c;甚至比硬实力更加重要。我觉得一场考试这么几件事要做#xff1a;看题#xff0c;选题#xff0c;分析#xff0c;编码#xff0c;调试#xff0c;测试#xff0c;骗分。 1、看题 拿到试卷以后的第一件事就是看题。看题不是看小说#xff0c;要… 对于NOI来说甚至比硬实力更加重要。我觉得一场考试这么几件事要做看题选题分析编码调试测试骗分。 1、看题 拿到试卷以后的第一件事就是看题。看题不是看小说要仔细阅读。当然阅读也不宜过慢刻意制造紧张的气氛会极大地影响发挥。NOI的题目没有赤裸裸的都是精心包装过的阅读就是解开这个包装的过程。首先从题目名看起认真阅读问题背景要明白题目在表达什么意思。一边阅读一边在脑中建立一个简单初步的模型。读完题后立刻看数据格式然后阅读样例如果是图论题在纸上把样例中描述的图画出来手算一下样例这样有助于加深理解题意。这时候不要着急开始想题把题再读一遍第二遍看题可以适当加快但不要放过细节。 2、选题 除非你是神牛级人物否则像NOI这样的比赛你是不可能把题全部想出来的那么选题就是十分重要的。把所有题先全部看完对每道题进行简要的思考每个题不超过30分钟千万不要陷进去有思路后即可停止。当你有了全局性的认识以后这时再开始选题。 选题意味着要决定深入思考哪个题做哪个题不做哪个题先做哪个题后做哪个题。深入思考当然是是要思考已经有大致思路的题在考场上想了半个钟头还没思路的题再想下去也很难想出来即便是想出来了浪费大量时间也是得不偿失的。我认为要先做把握大的题什么是把握大的题也就是思路完整算法熟悉易于调试的题。这样的题是拿分的关键也是和别人拉开档次的法宝一般来说一场考试中能有一道就是大幸了。更多的时候可能会发现没有把握很大的题这时不要着急静下心来选择一道有思路的题深入思考。 如果确定用随机类算法解决提交答案题可以先考虑开始写这样在剩下的几个小时中都可以用来运行随机程序以获得更好的解。 3、分析 有了思路要开始具体分析一个题的算法。分析前首先要确定一个目标我是要把这道题AC掉呢还是拿部分得分足矣这要看题目的数据规模把脑中的思路简要抽象成算法分析算法的时间复杂度确定目标着手优化算法。最后确定算法的每个细节思考各种极端的和边界的条件把完整的想法转化为完整的算法在纸上写出算法的流程准备编码。 有时候并不一定有拿满分的思路的题就要写完美的算法尤其是复杂的数据结构题这些题经常是一个陷阱令选手陷入其中不能自拔。浩浩荡荡写完二三百行程序欲调试出而不能而朴素的算法花费极少的时间拿到可观的分数孰轻孰重还要根据自己情况来衡量。 4、编码 在外行人看来仿佛变成编程序就是信息学竞赛的全部其实这是很小一部分但却是很关键的一部分。编码细心与否直接决定了下一步也就是调试的难度。看着自己在纸上写出的流程图小心地把代码写出来。这一步不求快但求稳一定不要犯低级错误。建议写完每个模块后立即检查每条语句与所想的是否符合写完整个程序后不要急于编译先把程序通读一遍确认无误后再开始编译调试。 5、调试 首先用样例或自己构造的小数据测试一边程序如果得出了期望的结果可以继续测试。否则一般会遇到这几种情况崩溃、超时、结果错误。崩溃问题一般是这几种情况的后果数组下标越界访问无效指针栈溢出。如果算法可行那么超时很可能是由无穷递归或死循环造成的。可以使用输出语句或调试器跟踪到程序错误的位置然后检查有没有语句逻辑错误。如果实在难以发现可以使用输出语句或调试器单步进入进行跟踪发现异常的部分及时修改。找到结果错误原因尽量不要一开始就是用单步调试不妨把建模过程和程序每步的结果都输出这样比单步更容易发现错误。 6、测试 调试和测试是交叉进行的稳定测试无误后开始规模测试。首先要构造边界、极端数据因为这些是较容易忽略的死角。接下来可以考虑随机数据对拍测试非完美算法可以简化此步。首先写一个朴素程序要保证正确性不求运行高效率然后写一个数据生成器。接下来生成数据两个程序分别运行对比结果反复大量测试对拍。发现错误可以及时调试并修正测试可以直到放心为止。充分利用时间还可以在思考下一道题的时候一边进行着测试。 7、骗分 会的已经写完的不会的写了非完美算法你还有剩下的工作要做。充分利用NOI的规则并不要求算法的完美性只要能拿到分就是好方法——这一步被人称为骗分。 骗分不是胡乱交一个程序输出0,IMPOSSIPLE甚至一个随机数之类而是有计划有预谋地搞。骗分的原则就是尽量避免超时。为什么超时就是0分如果不超时地输出一个结果还有可能拿到分。一般来说对于非完美算法的较大数据较好的方法是贪心、卡时和随机。 贪心法需要大胆的猜想即使是有反例的错误猜想稍作修改即可用于应付大数据。毕竟出题人也未必能考虑的你想到的贪心算法况且范例也是不容易构造的毕竟随机数据在NOI的测试数据中有相当的比重贪心是很划算的。对于需要反复迭代求最优值的算法例如搜索不妨采用卡时的方法。因为可能有这种情况我的程序要运行5秒但实际上有可能在第1秒以内求出的最优解已经是全局最优解剩下的4秒就是无用的。虽然读取系统时间time和clock函数都是禁止直接使用的我们大可不必真正卡“时”只需限定一个迭代次数即可。随机算法有点撞大运的感觉其实不是这样的较好的随机算法例如模拟退火遗传算法得到全局最优解的概率相当可观。 8、意外 有时候在考场上会遇到意外例如写了半天发现算法根本是错误的调了好长时间都调不出正确结果犹豫是否放弃精神过于紧张以至于体力不支操作系统或环境出现意外错误等等。这些因素都会很大程度上影响发挥但当我们真正要面对这些问题的时候该怎么办这是一个值得讨论的话题我很难给出一个合适解决方法但这时候发挥最重要作用的是心态良好的心态才是制胜的最根本条件。 为期一周的特别夏令营结束了明天我将从杭州上车返回郑州中途可以去西湖玩一玩保持健康良好的心态来迎接NOI。我的目标是在NOI上发挥出我真正的水平不求金牌因为我清楚我的实力离金牌还有相当的差距愿所有看到这篇文章的同学们能够有所帮助在将要到来的NOI2009和年底的NOIP2009中取得优异的成绩。 后话等我正式退役以后我会写更多的内容将我的一切经验毫无保留地献给所有在信息学竞赛路上继续奋斗的同学们。 转载于:https://www.cnblogs.com/tham/p/6827402.html