2023 oppo笔试题 提前批 0802
笔试时间:2023年8月02日 提前批
第一题
题目:构造二阶行列式
小欧拿到了一个数组,她有q次操作,每次操作修改一个元素。小欧希望每次修改后得到当前数组所有元素之和。你能帮帮她吗?
输入描述
第一行输入两个正整数n和q,代表数组的大小和操作次数。第二行输入n个正整数ai,代表小欧拿到的初始数组。接下来的q行,每行输入两个正整数i和x,代表将第i个元素修改为x。
输出描述
输出行,每行输入一个正整数,代表当前数组元素之和。
样例输入
5 3
1 2 3 4 5
2 3
3 3
5 1
样例输出
16
16
12
第一次修改后,数组变成[1,3,3,4,5],元素之和为16。
第二次修改后,数组变成[1,3,3,4,5],元素之和为16。
第三次修改后,数组变成[1,3,3,4,1],元素之和为12。
参考题解
模拟题。
C++:
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n,q;
cin >> n >> q;
vector<int> a(n,0);
long long sum = 0 ;
for (int i = 0 ;i < n ; i++) {
cin >> a[i];
sum += a[i];
}
for (int i = 0 ; i < q; i++) {
int I, x;
cin >> I >> x;
sum += x - a[I-1];
a[I-1] = x;
cout << sum << endl;
}
}
Java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int q = sc.nextInt();
int[] a = new int[n];
long sum = 0;
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
sum += a[i];
}
for (int i = 0; i < q; i++) {
int I = sc.nextInt();
int x = sc.nextInt();
sum += x - a[I - 1];
a[I - 1] = x;
System.out.println(sum);
}
}
}
Python:
n, q = map(int, input().split())
a = list(map(int, input().split()))
sum_val = sum(a)
for _ in range(q):
I, x = map(int, input().split())
sum_val += x - a[I - 1]
a[I - 1] = x
print(sum_val)
第二题
题目:小欧的圆覆盖
在平面直角坐标系上有一个矩形,和一个定点P。小欧希望以点P为圆心画一个圆覆盖这个矩形,请你求出圆面积的最小值。注:π取3.1415926536
输入描述
第一行输入四个整数 x1,x2,y1,y2代表矩形左下角坐标为(x1,y1),右上角坐标为(x2,y2)。第二行输入两个整数 (xp,yp),代表点P的坐标。
输出描述
一个浮点数,代表圆的最小面积。如果你的答案和标准答案的相对误差不超过10^-4,则认为你的答案正确。
样例输入
0 0 1 1
0 0
样例输出
6.2831853
枚举圆心到矩形的四个顶点的距离,取最大值x,x即是最后的圆的半径,套公式求解即可。
参考题解
模拟题。
根据题意,不断地更新连击次数,累加总的伤害值即可。
C++:
#include <algorithm>
#include <cmath>
#include <iostream>
using namespace std;
double get_dis(int x1,int y1, int x2, int y2) {
return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
int main() {
int x1,y1,x2,y2;
cin >> x1 >> y1 >> x2 >> y2;
int xp, yp;
cin >> xp >> yp;
double radio = max({get_dis(x1, y1, xp, yp), get_dis(x2, y2, xp, yp), get_dis(x2, y1, xp, yp),get_dis(x1, y2, xp, yp)});
cout << 3.1415926536 * radio * radio << endl;
}
Java:
import java.ut
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。
查看17道真题和解析