标签:分析 费马小定理 小数 取整 一个 时间复杂度 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
选常数小的数据结构
标签:分析 费马小定理 小数 取整 一个 时间复杂度 family 函数 保留
原文地址:https://www.cnblogs.com/Fo0o0ol/p/9941150.html