总结
2个小时,可以在3小时的时间范围内完成。
建议一小时填空,一小时编程。
选择40题,60分,各1.5分,主要是单选,部分双选。
编程2道,第二题难度比较大。
选择题
部分点回顾
linux系统 /etc/shadow文件加密方式。
kmeans++ 初始选择初始点个数是一个
25个人, 每5人1个跑道, 最少经过几次赛跑, 得到前3名
使用核密度估计法估计数据样本的分布时,仅从数据样本本身入手,并不需要任何先验知识。
基于计算机视觉的图像检索也可以分为类似文本搜索引擎的三个步骤:提取特征、建索引build以及查询。
拉普拉斯特征映射、线性判断包含降维思想。
创建字典 dict3 = {[1,2,3]: “uestc”} 字典中键必须是唯一的。列表中的项目包括在方括号中。列表是可变的数据类型(可以增加或删除项目)。所以,列表中的项目不能用来作为字典的键。
继承是面向对象编程的一个重要的方式,通过继承,子类就可以扩展父类的功能。和c++一样,在python中一个类能继承自不止一个父类,这叫做python的多重继承(Multiple Inheritance )。
最大流(运筹学)
利用像素、边界行程码、边界坐标计算面积
编程题
题目1
有n个钥匙,分别对应1到n号房,以指定顺序给你,只能按照1、2、3、..、n的顺序打开房门,输出开K号门时实际上手头有几把钥匙。
示例
5
5 3 1 2 4
输出
3 4 4 5 5
6
1 4 6 3 2 5
输出
1 5 5 5 6 6
#include<iostream>
#include<vector>
#include<set>
#include<stack>
using namespace std;
int main(){
int n;
cin >> n;
stack<int> doors;
for(int i = n; i >= 1;i--)
doors.push(i);
vector<int> ans;
set<int> input;
for(int i = 1; i <= n;i++){
int temp;
cin >> temp;
input.insert(temp);
while(!doors.empty() && input.find(doors.top()) != input.end()){
ans.push_back(i);
doors.pop();
}
}
for(int i = 0; i < n;i++){
cout << ans[i];
if(i < n - 1) cout << ' ';
}
return 0;
}
题目2
修复方程
比较难,使用java实现
输入数据只包含合法数字和+或者=,判断是否插入一个数字使得左右两边数值相等,如16=1+23,在1后面插入0,得到16=10+23