码迷,mamicode.com
首页 > 其他好文 > 详细

oi考试技巧(2) : 遗憾丢分

时间:2018-11-11 10:28:36      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:分析   费马小定理   小数   取整   一个   时间复杂度   family   函数   保留   

遗憾丢分

1.语文问题

  最好的选择是读完题,按照自己理解的题意模拟一下样例,判断是否正确,可以使读错的概率小很多。

2.数据范围看错

  有的时候是少看了一个限制条件,有这个条件能好做很多。有的时候是对自己太自信了(对于太自信的问题,以怀疑的态

度审视自己挺有用的)。

  因为现在oi系列比赛部分分设置的实在是非常繁杂,先尝试记住各种部分分在想题目解法很容易出问题,最好就是先想做法,然后再看看自己的做法对应到数据表上能得多少分。

3.边界情况漏判

  比较经典的有极小的边界情况,N=1或者N=0。

  当你对一个问题不是非常拿得准但是感觉也差不多时,而边界情况比较好算或者好写时,边界情况多判判没有害处,毕竟我们可以用来对主程序的进行一定的验证。

  不管你最后代码上是否把边界情况特殊处理,边界情况一定要在做题的时候想到,一定要想。

4.图论问题

       没有考虑重边和自环。

  没有考虑图不连通。“我们给出一个n个点n-1条边的无向图”曾以为出题人心中只有那唯一的一棵,没想到他还有好多环套树。

  Tarjan强连通分量只dfs(1)了?

  并查集没初始化?

5.复杂度分析错误

  以为自己想到正解,写了半个小时才突然发现复杂度不对,或者是这个做法空间竟然开不下?!

  想出来一个方法,但是总感觉复杂度不对。结果考完了你发现均摊时间复杂度来算它就对了,追悔莫及。

6.取模

  两个int乘,先强制类型转化为long long 再取模。

  注意一个单独的数字是int类型的(1,2,123124),要是乘法有单独的数字注意在数字后面加ll,(1ll,2ll,123124ll)这样就是longlong类型的了。如果是前者,乘一个变量变成大于int的话也是会出问题。

  这个取模问题可以在写完整个代码之后单独查一遍,单独查!因为写代码的时候需要注意的东西太多,就算很仔细也可能会漏下一个小问题,然而小问题就可以让一道题目完挂。

  模数是合数,直接费马小定理了?

7.忘记预处理或者是没有调用预处理函数

  这个一般是能在测样例的时候找出来,只不过把时间花在忘记调用预处理函数上就有点不值得了。

8.排序没加cmp

9.忘记开long long

  注意50000*50000在int下是开不下的。

  int和long long混用的时候要尤其小心。(但是我不建议全文long long)  

  输入输出不要忘了用%lld,打成%d很尴尬。

10.Double问题

  输出要用%lf,%f是不对的。

  浮点数直接强制类型转化为int是向绝对值小的方向取整,不是四舍五入!!!!

  %.0lf是四舍五入保留到0位小数(保留整数),也不是取整,

取整的时候要用ceil和floor。

11.数组大小没开对

  单独查。

12.数据忘记初始化

  多组数据忘记清空所需要的数组,或者是tot,ans,cnt等计数变量。

  memset只能赋一些特殊的值,(0,-1,0x3f3f3f3f——一个大约1e9的数),不是想赋值成什么都行的。

  数据组数很多,但是每组数据都比较小,然后每次都memset导致超时。

    单独查。

13.调试信息没有删除

  最后五分钟把要最后交的代码再检查一遍。

14.卡(qia)常

       考试少用点stl

  选常数小的数据结构

oi考试技巧(2) : 遗憾丢分

标签:分析   费马小定理   小数   取整   一个   时间复杂度   family   函数   保留   

原文地址:https://www.cnblogs.com/Fo0o0ol/p/9941150.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!