综合模拟二
约 10 分钟
混合模拟考的是"临场判断题型"的能力。三道题分属搜索、数论、字符串,方法各不相同,先花几分钟通读三道,判断难度和类型,再决定先做哪道。搜索题先看数据范围: 往往是指数级的 DFS 加剪枝;数论题多半绕不开 、质数、快速幂;字符串题重点在下标和边界。
搜索题的通用骨架是"选择—递归—撤销":
int n;
bool vis[25];
void dfs(int step) {
if (step == n) { /* 记录一组解 */ return; }
for (int i = 0; i < n; i++)
if (!vis[i]) {
vis[i] = true;
dfs(step + 1);
vis[i] = false; // 回溯:撤销这一步的选择
}
}
DFS 最坏复杂度约 (分支数 、深度 ),全靠剪枝把它压下来。最大的坑不是算法本身,而是三题时间分配——别在一道上死磕,通读后先挑最有把握的下手。
小纸条
这次注意先通读三道再动手。
登录 后可看答案