温馨提示

VenusM1nT

2020-11-04 16:53:22

Personal

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