模拟
模拟就是用程序来模拟题目中发生的操作。
模拟题的特点是虽然算法没有难度,但往往代码量大,逻辑复杂,因此容易出错(这点上和实际的应用程序是比较像的)。有一些方法可以提高正确率:
- 多多手工模拟,保证对题义和corner case理解全面。
- 模块化、函数化,将公用的概念和操作提取出来。
- 分步骤、分模块测试。
- 要找到关键的点,或者不变量(invariants),往往可以简化问题。
习题
- P8188 Email Filtering S (USACO Feb 2022) - 关键间是最上方的folder决定了email一定需要滚动到哪里。