- 每道题,如果想不出进一步的算法,30min之内要写出暴力,确保拿分。
- 不要因为想不出来就轻易跳题,要相信题目大致是从易到难排序的,每道题至少预留二三十分钟思考。
- 临场决策很重要。看看在剩余的时间内,对于每一道题,大概还能拿多少分。写完一道题的部分分,如果感觉可以再进一步,但后面还有几题没做,应该先看后面的题
- 能走一步就多走一步。譬如你已经拿了50pts,不妨后面的测试点全部输出No吧(不可以,总司令)。
- 一定要一次性把题目审对。
- 如果可以,最好先手算样例,防止写到一半突然发现算法是错的。
- 写完代码后,测一下极端情况。
- 不能手动但脑子不动,否则会出现这些错误:
for (int i = n - 1; i >= 0; ++i)
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++i) {
//...
}
}
if (b[i] < lmin[i - 1][0]) lmin[i][0] = b[i], lmin[i][1] = i;
else lmin[i][0] = lmin[i - 1][0], lmin[i][1] = lmin[i - 1][1];
if (b[i] > lmax[i - 1][0]) lmax[i][0] = b[i], lmin[i][1] = i;//重复的代码抄上面的,结果抄得一模一样
else lmax[i][0] = lmax[i - 1][0], lmax[i][1] = lmax[i - 1][1];
- 有时,先拿了一些部分分。想要修改代码,拿更多部分分时,记得把数组开得更大。
- 开long long. @@
- 有时题目要求答案取模,写到最后忘了。
- 使用scanf,注意long long与int. @
- 使用scanf,加&号;数组不加。@
- 数组越界。
- 括号不要括错了。比如
if (cal(x, y > v))
应为if (cal(x, y) > v)
. - 栈、队列等STL数据结构,做pop等操作前,要看里面是不是空的。
- size不能直接-1 。
- 不能把变量名命名为tm.
- 删除调试用输出。
- 快速幂特判 0 0 0^0 00.
2023.4.11.
5.30.