杭电计算机复试笔试2019题解

1.大家去电影院看电影,总共有n人来看电影,其中年龄不低于18岁的成年人的座位号为奇数,不满18岁的
未成年人的座位号为偶数。现在请统计成年人与未成年的数目,以及他们在总人数里的比例。n<=1000。
样例输入:5 2 3 6 7 11
样例输出:3 0.60 2 0.40

//扫描所有数据,统计奇数个数和偶数个数
//注意:两个int型数据相除还是int型,必须加上强制类型转换,或者直接将其全部变为double型数据进行运算,否则0.6这样的数显示不出来

#include

int main(){
	int n,num;
	int odds=0,even=0;
	scanf("%d",&n);
	for(int i=0;i

/*
给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,
垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容
纳最多的水

说明:你不能倾斜容器,且 n 的值至少为 2。
输入: 9 1 8 6 2 5 4 8 3 7(考试的时候给了数量n,n<=1000)
输出: 49
暴力法:直接求出任意两根线之间能容纳的水量,在比较选出最大值,O(n-1+n-2+…+1)=O(n^2)

#include

int main(){
	int n,num[1010];
	scanf("%d",&n);
	int min,temp;//存储两者中的最小值 ,暂时的存水量 
	int total=0;//total中存储最大储水量 
	for(int i=0;itotal){
				total=temp;
			} 
		}
	}
	printf("%d\n",total);
	return 0;
} 

百度之后发现可以用双指针法使复杂度降为O(n)
双指针反向扫描,如果左边的小于右边的则指针右移,否则右指针左移,i=0,j=n-1;
思考原理:对于两条竖线,一定是以最低的作为容器的高,那么宽当然是越大越好,所以刚开始两指针分别在头和尾,底是最大的,对于第一条竖线和最后一条来说,高固定了,只有底最大时,存水才最大,假设i=0,j=n-1;num[i]

#include
#include
using namespace std;
int main(){
	int n,num[1010];
	scanf("%d",&n);
	for(int i=0;itotal){
			total=temp;
		}
		if(num[i]

*/
/*题3:有个班级,里面有N个学生,他们之中有些是朋友有些不是,比如如果A是B的朋友,B是C的朋友,
那么A就是C的间接朋友,我们定义所谓的朋友圈就是由直系和间接朋友所组成的群体。N的范围为 [1,200].

输入:
3
1 1 0
1 1 0
0 0 1
输出: 2
解释:第0个和第1个学生是直系朋友,所以记为1个朋友圈。第2个学生他没什么朋友也
要算一个朋友圈,所以结果为2
输入:
3
1 1 0
1 1 1
0 1 1
输出: 1
解释:第0个和第1个学生是直系朋友,第1和第2个也是,所以第0和第2个学生是
间接朋友,三个学生都在同个朋友圈里,返回1.
*/
//看题的话可以求连通块的数量,即BFS和DFS,或者用并查集判断两块是否属于同一个连通块
//并查集在合并时要求两个是不同的集合,所以一定没有环,并查集产生的每一个集合都是一颗树

#include

const int maxn=210;
int father[maxn];
bool isroot[maxn]={false};//记录某个节点是否是一个完整集合的根节点 
int matrix[maxn][maxn];
int findFather(int x){
	int a=x;
	while(x!=father[x]){
		x=father[x];
	}
	//路径压缩
	while(a!=father[a]){
		int z=a;
		a=father[a];//下面两行不能颠倒 
		father[z]=x;
	} 
}

int main(){
	for(int i=1;i

//DFS,BFS算法见2015年题2

还有一题是关于图像处理的,
.使用卷积神经网络将一张图片进行卷积处理。
(1)给出卷积公式,还给出图片的边缘处理方式,要求用代码实现图片卷积的过程。
(2)给出一张图片,让你画出卷积后的图片。
(3)给出两个函数(已知,直接调用即可,不用实现),一个是图片读入函数,一个是图片保存函数。要求实现从图片读入,经过卷积变形,最后保存结果这么一个过程。//第三题还可以,直接依据已经存在的函数进行调用即可,所以说难题中也有可以拿分项

你可能感兴趣的:(杭电计算机复试,算法,并查集)