一些比赛经验总结

写这个文章记录一下自己的新的体会,同时给同学们借鉴一下,也希望有大佬能指点指点。

答题抉择

像ICPC、CCPC以及各省的程序设计大赛,一般排位的顺序都是先取队伍解题的正确个数,个数多的则排在前面;若个数一致,则查看队伍的总用时,总用时短的排在前。而队伍的总时间是解题的时间和错误提交的罚时的总和。错误提交:是指在提交程序进行检测后出现答案错误,此时会记录一次20分钟的罚时,在正确答对该题之后,将罚时记录进总时间。

根据这个比赛规则就可以制定两种比较极端的策略:
1、把握住正确题目的个数:
这种策略,不需要管错误次数和罚时,以最快的速度解题,将每一道有把握的题尽量做出来。
可能出现的问题就:在正确相同题目的情况下,由于提交的次数过多获得过多的罚时,排名在末尾。

2、控制罚时的时间:
这种策略需要在解题的时候谨慎地提交答案,争取每一次提交都能一遍通过,以最小的罚时来获取相同正确题目中靠前的位置。
可能出现的问题:在解题的过程中,由于比较重视代码的正确率导致解题时间过长,或者在某道题中因为思路被限制而浪费大量的时间。

这两种策略都是比较极端的状况,因此在整场比赛中需要对此进行取舍。在比赛前期,先将题目全部粗略的看一遍,然后看其中是否有能够比较快速相出解题思路的签到题,尽量精准快速的解出简单题,避免因为简单题增长比赛总时间。而在比赛中期,对于正在解答的每一道题进行尽量详细的分析与代码的检查,尽量保证其正确率。而在比赛最后半小时,排行榜会进行封榜,这是大家都只能看到最后半小时之前的排名。同时这个时候大部分队伍都已经陷入了一个瓶颈期,最后的解题数不会有太大的变动。这个时候就应该采取第一种策略 ,把所有想到的代码实现,然后提交尝试一下。错了也不会增加时长,正确则会往上升很多名次。

具体的做题规划还得根据各个队伍自己的水平来自行进行判断,最好的状态就是碰到有思路的题目一次就能成功通过。

注意事项

1、数量范围
对于int这种类型的数据长度是32位,而在计算机中是二进制,所以转化为十进制最少可以容纳109的长度。(230=109),因此在面对大于109的数据时,我们便需要考虑是否需要将变量的类型更改为long long进行保存。

这个在数据处理时是十分重要的一步,就算题目要求中提到了对某个大数进行取模计算。但如果在中间计算过程中出现了超出长度范围的数据,那么最后得到的结果还是会不一样。

2、输出格式
这个是最基本的问题,在输出的时候必须考虑清楚输出内容的方式,大小写是否会影响到答案的检测。

3、数学方面的积累
往往在比赛中至少会出现一道与数学相关的题目。有的可能是概率方面的题目,有的可能是数学公式方面的题目,往往卡住大家解题的就是对于数学公式的理解和题目的概率的计算。这就需要大家在平时也注重对于数学的学习积累。

4、大胆尝试
面对一些比较奇怪的题目时,可以大胆的进行尝试,不要因为感觉自己的思路有问题就放弃解题。

练习建议

1、在刚进行学习时,可以做一些比较简单的题进行基础的训练,让自己能够快速地解决一些比赛中的简单题。例如NEUQ、POJ中的一些做题数据比较多的题目。

2、在自己能够很快做出基础题之后,可以尝试着去做一些提交量比较少,但是正确率在50%左右的题目。最开始可能还做不出来,可以先自己进行思考,然后根据题目去找到相应题解,了解题解的写法与解题思路,查找自己欠缺的内容,之后自己去查找相关的资料。

而自己欠缺的内容往往是一些对于数据结构的应用并不数学,或者一些算法思想并没有吃透。像数据结构中的栈、深度搜索算法、最短路径、贪心算法、动态规划等等,都是在算法中经常需要使用的。

3、对于自己的编程能力有一定自信之后可以尝试去参加计蒜客、洛谷、阿里天池等等网站举行的一些比赛,一方面检测自己的能力,另一方面也能增加面对这类比赛的参赛经验。

组队建议

在组队的时候,一方面要看看自己在哪些方面有所欠缺,找到能帮助自己补上这一块短板的同伴,另一方面找的队友最好能和自己一同进行学习,在此期间能够磨合彼此的默契度,在比赛场上能有更好的发挥。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值