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多种语言分析,解答。