前言
现在应该没有人用 P / C 了吧……所以默认环境为 C++ / win7
之前看洛咕群里关于这个能不能用那个能不能用讨论很激烈,想着来稍微写一点罢,希望有点用。
下列条目不分先后,想到什么写什么。
正文
关于语言 / IDE
- STL 是可以用的,放心用,最近很多人都找出了 2009 年的比赛规定然后说这个不能用之类云云
- pbds、__gcd、auto、lambda 表达式等这些 C++11 的内容都是不能用的,编译指令也是不能用的。你可以用 O2 测自己的程序速度,但千万不要留着交上去。
- 建议用
bits/stdc++.h
(不会被禁的,除非最近发了什么文件明确说不行)。因为你缺少cstdio
库就不能用freopen
,而编译是可以通过的,用万能头就可以防止这种情况的发生。 - 在能力所及范围内可以手写
queue
、stack
等,因为 STL 常数较大,但不要像初赛那样写一个 O ( n ) \text{O}(n) O(n) 的map
。 define int long long
是可以的(int main
→ \to →signed main
),而且个人建议在确保不会爆空间的情况下这么开,以备不时之需。当然肯定不会爆int
就没必要开了。fread
/fwrite
可,放心用。- 如果有浮点数,计算的时候保险起见可以在每个数前面都加一个
(double)
,所有数字都加一个.0
。 - 在 dev-c++ 中,点击
工具[T] - 编译选项[C] - 代码生成/优化 - 代码警告
中有一个显示最多警告信息(-Wall)
,可以开一下,有时候可以告诉你有歧义的部分之类的,防止出现奇怪错误。 - 不建议使用英文单词作为变量名,有可能是保留字。可以采用缩写(next → \to → nxt)或驼峰(next → \to → Next),一般是不会出事的。当然也有 MessageBox 这种奇怪东西,不过一般很难撞车。
- 数组不要开小!数组不要开小!数组不要开小!
关于策略
- 这次不提供水和食物,可以稍微带一点,毕竟 4h 长线作战。
- 撤硕多去是有好处的,一个是让自己清醒一下,另一个是可能遇到认识的 dalao(不过今年似乎管得更严了?)。
- 开场可以先把题都看一遍,然后想一下怎么分配时间,难度一般都是递增的,所以正开就好。如果直接想到正解了可以先写正解,否则先写暴力,有分总比没分强。
- 有时间一定要对拍,一定要造边界数据,鬼知道你写的程序有没有奇怪的 bug。
- 如果对正解没信心,那么可以对有信心的部分分特判。你的程序是爆不了 100k 的上限的,你的代码有多好看也不会给你加分,分数要紧。
- 文件名 / 输出的字符串不要看错,多确认几次。可以直接从 pdf 文件中复制。
- 记得加
return 0
。 - 代码随时保存,对于不同的部分分可以创不同的文件存,免得混乱或者丢失。
- 想不到暴力就贪心。
- 心态放好,不要被周围的人影响,把周围的人都当成麻瓜。
- 模板不要背错。
- 多读几遍题,防止题意理解出错。
- 草稿纸不要省,对找规律推方程的帮助非常大。mspaint 没有草稿纸好用。
- 考试最后检查一下文件输入输出,跑一下样例之类的,保证程序不会出奇怪的锅。
欢迎各位补充。
祝所有人武运昌隆。