2019杭电计算机复试笔试题
-
电影院的座位分配为成年人的座位为奇数,非成年人的座位为偶数。现在输入一个N代表人数,依次输入N个有人的座位号,判断成年人有几个,所占比例是多少(保留小数点后两位),非成年人有几个,所占比例是多少(保留小数点后两位)。
#include<stdio.h> #include<iostream> #include<string> #include<string> using namespace std; //21:56 int main() { float N; int temp; cin>>N; float count=0,teenger=0; for(int i=1;i<=N;i++) {
cin>>temp; if(temp%2==1) count++; else teenger++; } printf("%.2f\n",count/N*100); printf("%.2f\n",teenger/N*100);}
-
在二维坐标系中,做N条垂直线(与x轴垂直),起点为(i, 0),终点为(i, Yi)。i为自然数, 0<= i <= N。试从N条垂直线中取出2条并且与X轴形成一个凹型水槽,向其中注水,问如何选择垂线能使注入的水最多(即两条垂线的x坐标之差的绝对值乘上两条垂线段中y坐标较小的那个,得到的结果要最大)。先输入一个数N,代表垂线段的个数,在输入N个Yi(i = 0,1,2.....N-1)。 例:input: 11 2 8 6 7 4 8 9 2 7 3 5 output: 49
#include<stdio.h> #include<iostream> #include<string> #include<string> #include<vector> using namespace std; //22:04 typedef struct { int x; int y; }line; int main() { int N,Max=-1; cin>>N; vector<line>s1; for(int i=1;i<=N;i++) { line temp; cin>>temp.x>>temp.y; s1.push_back(temp); }
for(int i=0;i<s1.size();i++) { for(int j=0;j<s1.size();j++) { int t=abs(s1[i].x-s1[j].x)*min(s1[i].y,s1[j].y); if(Max==-1)Max=t; if(t>Max) Max=t; } } cout<<Min;}
-
使用卷积神经网络将一张图片进行卷积处理。
-
给出卷积公式,还给出图片的边缘处理方式,要求用代码实现图片卷积的过程。
-
给出一张图片,让你画出卷积后的图片。
-
给出两个函数(已知,直接调用即可,不用实现),一个是图片读入函数,一个是图片保存函数。要求实现从图片读入,经过卷积变形,最后保存结果这么一个过程。//第三题还可以,直接依据已经存在的函数进行调用即可,所以说难题中也有可以拿分项
-
-
找朋友。假设A是B的朋友,那么B也是A的朋友,C与B为朋友,则C与A也为朋友,另外,自己与自己也是朋友。输入一个数N,代表人数,紧接着输入一个N*N的矩阵,1代表两个人是朋友,0代表两个人不是朋友。求有几个朋友圈。
例:input: 3 1 1 0 1 1 0 0 0 1 output: 2#include<stdio.h> #include<iostream> #include<vector> #include<queue>
using namespace std;
int main() { int N; if (!(cin >> N)) return 0;
// 1. 初始化数组 vector<vector<int>> arr(N, vector<int>(N)); vector<int> vis(N, 0); // 修正为一维,并初始化大小为 N for(int i=0; i<N; i++) { for(int j=0; j<N; j++) { cin >> arr[i][j]; } } int count = 0; // 2. 遍历每个人,寻找朋友圈起点 for (int i = 0; i < N; i++) { if (vis[i] == 0) { count++; // 发现新朋友圈 // 3. 开始一轮标准 BFS queue<int> q; q.push(i); vis[i] = 1; while (!q.empty()) { int person = q.front(); q.pop(); // 检查所有潜在的朋友 for (int j = 0; j < N; j++) { if (arr[person][j] == 1 && vis[j] == 0) { vis[j] = 1; q.push(j); } } } } } cout << count << endl; return 0;}

1125

被折叠的 条评论
为什么被折叠?



