没有合适的资源?快使用搜索试试~ 我知道了~
首页北航2020机试复习指南:真题详解与优化策略
北航2020机试复习指南:真题详解与优化策略
需积分: 0 4 下载量 109 浏览量
更新于2024-06-30
1
收藏 952KB DOCX 举报
北航计算机专业机试复习指南2020版旨在提供更完善的机试准备材料,弥补以往资料中叙述不全、缺乏测试用例和代码解释的问题。该指南主要关注于历年机试真题的整合与分析,作者以学长们的回忆帖、论坛资料和部分复试资料为基础,力求构建一套既具有实战性又还原真实的考试情境。 首先,指南强调了北航机试的时间限制——两小时,通常会提供2到3个测试用例,考生需要在规定时间内完成。作者会在题目中给出基础测试用例,以及供考生自测的边界条件和特殊情况用例,建议在答题结束后再核对分数。分数由机器自动评分和人工查阅两部分组成,即使部分测试未通过,正确的思想表达和代码框架仍可能带来较高的分数。 在题目解析和参考代码方面,作者提供了优化过的代码示例,旨在帮助考生提高解题效率。在实际考试中,虽然时间紧张,但确保代码能够满足要求并拿到分数最为关键。不过,作者鼓励考生在平时练习时养成写注释的习惯,这有助于清晰思考和后期人工查阅时的易读性。 指南特别指出,所有代码都是按照单点测试设计的,每个测试用例作为一个独立文件。尽管多点测试更为稳妥,但单点测试也完全可行,考生可以根据个人习惯选择。了解多点测试的概念是非常必要的,因为历史上机试曾涉及多点输入的考察。 最后,作者明确表示文档是免费开源的,欢迎考研机构广泛传播,并强调其编写初衷是为了帮助考生更好地准备机试,而非阻碍阅读体验。通过这份指南,考生不仅能得到题目解答,还能提升应试策略和编程技巧,以期在北航计算机专业机试中取得理想成绩。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/86368392/bga.jpg)
10
98573 98597 98621
99817 99823 99829
自测用例 3:
输入:
151 179
输出:
151 157 163
167 173 179
自测用例 4:
输入:
200 268
输出:
251 257 263
用例 1 考虑了 a 的边界条件(是否特判 1 的情况,未特判会输出 1 3 5 7),用例 2 考虑
了 b 的边界条件(素数表是否打印到位,是否会溢出),用例 3 考虑了 a、b 闭区间的问
题,是否可以正常打印出闭区间边界上的数字。用例 4 考虑了多于 3 个时,期间在中间阶
段的情况,即判断多于三个的情况时,有没有对判断条件加入 b 的限制。
题目二:
这道题有很多人都是用树做的,很多人在考场上写了一堆东西,到最后 debug 不出来
也无所谓就交了,包括红果研上给的也是用树做的代码,足足写了六页纸。事实上这题用
图做是非常简单的,这也告诉我们,当题目中出现“路径”这种词的时候,还是应该优先
考虑用图来做,更何况根据这道题三叉树没有环的特点,实际上路径是唯一的(当你发现
题目中并没有要求最短,或是某个指标最大最小时,就应该反应过来实际上路径是唯一
的),所以这里给出用图做的方式。如果有用树做的还很简单的方式,可以在之后补充上。
具体代码的思路就是,因为数据规模大于 1000,所以使用邻接表的方式存储图,然后
使用 DFS 对图进行遍历。然后开了一个 pre 数组记录前驱结点,再 DFS 打印数据(实际上
就是堆栈,用一个 stack 亦可)。对输入的客户数据使用结构体存储,可以很方便的使用
sort 进行排序,其他的没有太多技术难度,可以说只要想到用图,基本上这题可以很轻松
地做出来。
以下是代码部分。大约写了半个小时,然后 debug 了二十分钟,一个小时内足够拿下
了。
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
![](https://csdnimg.cn/release/download_crawler_static/86368392/bgb.jpg)
11
const int maxn = 10010;
const int inf = 0x3fffffff;
int n, m, s;
int pre[maxn];
bool vis[maxn] = {false};
bool flag; //flag=true 时表示已找到
vector<int> Adj[maxn]; //邻接表存储图
struct client {
int num, prior;
}c[maxn];
bool cmp(client a, client b) {
return a.prior < b.prior;
}
void printDFS(int v) {
if(pre[v] != -1) {
printDFS(pre[v]);
printf("%d ", v);
}
}
void DFS(int s, int ed) {
vis[s] = true; //访问时先标记已访问,防止重复访问
for(int i = 0; i < Adj[s].size(); i++) {
int v = Adj[s][i];
if(flag == true) return; //若已找到,直接返回
if(vis[v] == false) { //当未找到时且当前 v 结点未被访问过
pre[v] = s; //进入并设定 v 的前驱结点为 s
if(v != ed) { //若此时 v 不是终点,继续 DFS 遍历
DFS(v, ed);
}
else { //到达终点
printDFS(pre[v]); //打印先前的所有结点并空格
printf("%d\n", v); //打印最后一个结点并换行
flag = true; //并标记已找到
}
}
}
}
int main() {
![](https://csdnimg.cn/release/download_crawler_static/86368392/bgc.jpg)
12
int f, c1, c2, c3; //father & child 1~3
scanf("%d", &n);
for(int i = 0; i < n; i++) {
scanf("%d %d %d %d", &f, &c1, &c2, &c3);
if(i == 0) s = f;
if(c1 != -1) {
Adj[f].push_back(c1);
Adj[c1].push_back(f);
}
if(c2 != -1) {
Adj[f].push_back(c2);
Adj[c2].push_back(f);
}
if(c3 != -1) {
Adj[f].push_back(c3);
Adj[c3].push_back(f);
}
}
scanf("%d", &m);
for(int i = 0; i < m; i++) {
scanf("%d %d", &c[i].num, &c[i].prior);
}
sort(c, c + m, cmp);
//假设不存在环,那么路径唯一,直接使用 DFS 即可
printf("%d ", s); //打印起点,此后遍历时均不打印起点
for(int i = 0; i < m; i++) {
flag = false;
memset(pre, -1, sizeof(pre));
memset(vis, 0, sizeof(vis));
if(i == 0) {
DFS(s, c[i].num);
}
else DFS(c[i - 1].num, c[i].num);
}
flag = false;
memset(pre, -1, sizeof(pre));
memset(vis, 0, sizeof(vis));
DFS(c[m - 1].num, s);
return 0;
}
以下为 wujinxuan008@163.com 增添的使用树的解法,ta 表示使用树也是比较简单
的,在此附上给大家参考:
剩余57页未读,继续阅读
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/297b47943c234e969abc4eb3d8d642e9_weixin_35786770.jpg!1)
熊比哒
- 粉丝: 33
- 资源: 292
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 解决本地连接丢失无法上网的问题
- BIOS报警声音解析:故障原因与解决方法
- 广义均值移动跟踪算法在视频目标跟踪中的应用研究
- C++Builder快捷键大全:高效编程的秘密武器
- 网页制作入门:常用代码详解
- TX2440A开发板网络远程监控系统移植教程:易搭建与通用解决方案
- WebLogic10虚拟内存配置详解与优化技巧
- C#网络编程深度解析:Socket基础与应用
- 掌握Struts1:Java MVC轻量级框架详解
- 20个必备CSS代码段提升Web开发效率
- CSS样式大全:字体、文本、列表样式详解
- Proteus元件库大全:从基础到高级组件
- 74HC08芯片:高速CMOS四输入与门详细资料
- C#获取当前路径的多种方法详解
- 修复MySQL乱码问题:设置字符集为GB2312
- C语言的诞生与演进:从汇编到系统编程的革命
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)