算法竞赛:闭坑指南
一、多测清空!!!
多测清空清空清空清空清空一定要清空!!!!!
多测不清空,爆零两行泪!!!!!
虽然是老生常谈,但自己体会过才知道是真的坑!!!
名言也有名言的道理!!!
就应为ans没清0,考试的时候改了半个小时!!!!
二、仔细读题!!!
小心腹黑的出题人挖的各种坑!!!
坑1 永远不要相信样例
某谷某题,题面如下:
贡献系统(contrib)
【样例 1 输入】
3
5
3816 3738 3726 3621 3582
111 109 ‐50 ‐22 208
8
8 7 6 5 4 3 2 1
128 1 0 0 0 0 1 0
10
10 9 8 7 6 5 4 3 2 1
1 1 4 5 1 4 1 9 1 9【样例 1 输出】
280
1
34
是不是看起来人畜无害?
我也是这么觉得的。
直到我把它复制下来,粘贴到程序里。
。。。
看了好久,各种输出中间变量,终于发现。。。是读入的问题。。。
然而我直到那时都天真的相信样例,以为是程序错了,一顿检查scanf
都检查崩溃三观尽毁怀疑人生了。。。
直到。。我把它再一次复制下来,发现。。。
???怎么是红色的???
红色不是非法字符吗?正常情况不都是中文的全角标点吗?
那么,问题来了,为什么‘-’会变成‘-’?(没复制错,差别就是这么小)
把负号改了之后,只用几分钟就查完错了。
两个错加起来总共改了我一个小时!!!
坑2 不要手残
考试过程中,时间紧张、气氛紧张,容易一不小心把变量打错。
常常需要浪费十几分钟,几十分钟甚至更长的时间在这种低级错误上寻找原因。
特别是scanf读入int型的变量,之后改成long long就很容易忘改%lld。
而样例根本测不出来,一般的编译器都不会报错。
目前好像不知道什么好的办法避免,但是认真静态差错应该不难发现。
还有就是多刷题练习。