此复试题目是根据博主在考场上的记忆回忆复原的题目。为了恢复试题的原貌,我根据试题要求进行合理的脑补,按照oj系统的风格补全了试题的Problem Description、Input、Output、Sample Input、Sample Out等内容,并加入了详解、具体的代码实现。题目在卷子上的具体呈现形式是洛谷oj那个样子的,所以仅供大家参考。有什么错误、不合理的地方欢迎指出。
以下题目中的数据除第三题外,都是我瞎编的。原创不易,还请大家多支持
第一题
Problem Description
有一群人去电影院看电影。但电影院有个很奇怪的规定:成人只能分到数字奇数座位号,未满18岁的儿童只能分到数字为偶数的座位号。
Input
输入共有n个人去看电影
(1<=n<1000)
,接下来输入n个人的座位号,每个座位号用空格隔开Output
依次输出此次看电影成人的人数以及成人在所有人中所占的比例、未成年人的人数以及未成年人在所有人中所占的比例,计算出的比例保留两位小数,每个输出用空格隔开
Sample Input
8 13 12 10 8 3 24 21 19
Sample Output
4 0.50 4 0.50
这道题就是个送分题,没什么难度,注意下计算比例时的精度问题就ok。
1 |
|
第二题
Problem Description
有一个大容器,现在向其中加入若干铅锤的木板,每个木板的顶端坐标记为
(i,yi)
,如图Input
输入共加入n个木板
(1<=n<1000)
,接下来输入n个数字表示加入的n个木板的高度,每个高度用空格隔开Output
输出该容器最大能装多少体积的水(容器不允许倾斜)
Sample Input
8 1 8 6 4 5 3 7 2
Sample Output
35
当时看到这道题的时候并没有想到什么特别好的办法,但注意到这道题的n的取值范围,1到1000。如果我们用暴力解的话复杂度是O(n^2),也就是说最多计算100w次就可得到答案,在我们接受的范围之内,所以在考场上就用暴力解了这道题
1 |
|
第三题
Problem Description
图像的卷积处理是深度学习中非常重要的一种方法,通常是运用一个3×3的模板矩阵s来对长n,宽m的原图像pI(n,m)进行卷积,得到卷积后图像I'(i,j)的公式为
特别的,当卷积进行到图像上边缘时复制原图像的第0行,当卷积进行到图像左边缘时复制原图像的第0列,当卷积进行到图像下边缘时复制原图像的第n-1行,当卷积进行到图像右边缘时复制原图像的第n-1列。
Problem 1
写出实现上述卷积功能的函数
Convolution(unsigned char* pI,unsigned char* S,int width,int height)
Problem 2
根据上述描述画出下图pI(n,m)在模板St下经过卷积处理的图形
Problem 3
给出读取图片方法
unsigned char* readBmp(char fileName[100],unsigned char *pI,int width,int height)
,保存图片方法void readBmp(char fileName[100],unsigned char *pIBuffer,int width,int height)
(以上两个方法不用实现)完成上题的卷积过程整张卷子里可能就属这道题最难了,但它难并不是难在逻辑上,而是在你的理解上。因为我没有接触过图像处理相关知识,所以考场上也只能一顿乱写,也不知道对错,所以这里就不放不来我的代码了。有大神会的话可以在评论区贴出来呀!
第四题
Problem Description
有一群人,现在告诉你他们之间的朋友关系。若A与B是朋友,B是C的朋友,则A与C也是朋友。朋友关系都是双向的,即A与B是朋友,B与A也是朋友。那么A、B、C就在同一个“朋友圈”
Input
首先输入n,m表示有n个人,m对关系
(1<=n<2000)
,接下来有m行每一行表示一对关系(输入每个数字代表一个人)Output
输出在当前输入关系的情况下“朋友圈”的数量
Sample Input
8 7
1 2
2 4
4 1
5 7
4 3
6 2
7 8
1 2
2 4
4 1
5 7
4 3
6 2
7 8
Sample Output
2
1 |
|
这道题也比较简单,就是一个并查集的简单应用,题目的要求也很明确,就是求有多少个集合