OPPO 2024届校招正式批笔试题-研发通用(C卷)

OPPO 2024届校招正式批笔试题-研发通用(C卷):OPPO杯手机diy大赛、小欧的字符串判定、小欧找数,涉及数学、思维等。

OPPO杯手机diy大赛

问题描述

小欧参加了“oppo杯”手机 d i y diy diy 大赛,该大赛将从外观和性能两个方面综合评比每个选手的作品。

共有 n n n 个评委,每个评委为小欧的作品的外观和性能分别打了分数。

为了分数更加有效,每个指标的分数都将分别去除最高分和最低分之后计算剩下分数的平均数即为指标的分数,然后求出这两个指标分数的平均数,即为最终的分数。

然而,突发紧急公告,有一个评委可能由于徇私舞弊失去评价资格。

小欧想知道,如果是第 i i i 个评委失去资格,她最终能获得多少分?你需要回答 i = 1 , 2 , . . . , n i=1,2,...,n i=1,2,...,n 的答案。

输入描述

第一行输入一个正整数 n n n,代表评委的数量。
接下来的 n n n 行,每行输入两个正整数 a i a_i ai b i b_i bi,代表该评委给小欧作品的外观分数和性能分数。

  • 4 ≤ n ≤ 1 0 5 4\leq n \leq 10^5 4n105
  • 1 ≤ a i , b i ≤ 1 0 9 1\leq a_i , b_i \leq 10^9 1ai,bi109
输出描述

输出 n n n 行,第 i i i 行输出一个浮点数,代表第 i i i 个评委失去资格后,小欧最终的分数。

如果你输出的答案精度和标准答案的相对误差不超过 1 0 − 5 10^{-5} 105,则认为答案正确。

解题思路

按题意计算即可。

代码实现
typedef long long ll;
const int N = 1e5 + 4, INF = 1e9;
int a[N], b[N];

int main() {

    int n, af[4] = {0, 0, INF, INF}, bf[4] = {0, 0, INF, INF};
    ll as = 0, bs = 0;
    scanf("%d", &n);


    auto comp = [&](int f[], int x) {
        if (x > f[0])f[1] = f[0], f[0] = x;
        else if (x > f[1])f[1] = x;
        if (x < f[2])f[3] = f[2], f[2] = x;
        else if (x < f[3])f[3] = x;
    };
    for (int i = 0; i < n; i++) {
        scanf("%d%d", &a[i], &b[i]);
        comp(af, a[i]), comp(bf, b[i]);
        as += a[i], bs += b[i];
    }
    
    auto cal = [&](const int f[], int x, ll sum) {
        int l = x == f[0] ? 1 : 0;
        int h = x == f[2] ? 3 : 2;
        return 1.0 * (sum - f[l] - f[h] - x) / (n - 3);
    };
    for (int i = 0; i < n; i++) {
        printf("%.6lf\n", (cal(af, a[i], as) + cal(bf, b[i], bs)) / 2);
    }

    return 0;
}

时间复杂度: O ( n ) O(n) O(n)

空间复杂度: O ( n ) O(n) O(n)

小欧的字符串判定

题目描述

小欧拿到了两个字符串 s s s t t t,她有一个目标字符串 t a r g e t target target。小欧希望每一位从或 s s s t t t 的对应位置的字符中二选一生成 t a r g e t target target,你能告诉小欧她最终能达成目的吗?

输入描述

第一行输入一个正整数 n n n,代表 s , t , t a r g e t s,t,target s,t,target 的长度。

第二行输入一个字符串 s s s

第三行输入一个字符串 t t t

第四行输入一个字符串 t a r g e t target target

  • 1 ≤ n ≤ 100 1\leq n \leq 100 1n100
输出描述

如果可以达成目的,则输出"Yes"。否则输出"No"

解题思路

按题意计算即可。

代码实现
int main() {
    int n;
    string s, t, tar;
    cin >> n >> s >> t >> tar;
    while (n--) {
        if (s[n] == tar[n] || t[n] == tar[n])continue;
        printf("No");
        return 0;
    }
    printf("Yes");
    return 0;
}

时间复杂度: O ( n ) O(n) O(n)

空间复杂度: O ( n ) O(n) O(n)

小欧找数

题目描述

小欧有 2 2 2 个区间 [ l 1 , r 1 ] [l_1,r_1] [l1,r1] [ l 2 , r 2 ] [l_2,r_2] [l2,r2]。小欧想知道存在多少个整数 m i d mid mid,可以找到两个整数 x x x y y y 满足 m i d = ⌊ ( x + y ) / 2 ⌋ mid=⌊(x+y)/2⌋ mid=⌊(x+y)/2 l 1 ≤ x ≤ r 1 , l 2 ≤ y ≤ r 2 l_1≤x≤r_1, l_2≤y≤r_2 l1xr1,l2yr2

其中 ⌊ x ⌋ ⌊x⌋ x 表示对 x x x 下取整。

输入描述

一行四个整数 l 1 , r 1 , l 2 , r 2 l_1,r_1,l_2,r_2 l1,r1,l2,r2

  • 1 ≤ l 1 ≤ r 1 ≤ 1 0 14 1 \leq l_1 \leq r_1 \leq 10^{14} 1l1r11014
  • 1 ≤ l 2 ≤ r 2 ≤ 1 0 14 1 \leq l_2 \leq r_2 \leq 10^{14} 1l2r21014
输出描述

一行一个整数,表示满足条件的 m i d mid mid 数量。

解题思路

m i d mid mid 的最大值为 A A A,最小值为 B B B,则 m i d mid mid 的个数为 B − A + 1 B-A+1 BA+1

代码实现、
typedef long long ll;
int main() {
    ll a, b, c, d;
    cin >> a >> b >> c >> d;
    cout << (b + d) - (a + c) + 1;
    return 0;
}

时间复杂度: O ( 1 ) O(1) O(1)

空间复杂度: O ( 1 ) O(1) O(1)

END

文章文档:公众号 字节幺零二四 回复关键字可获取本文文档。

题目来源:OPPO 2024届校招正式批笔试题-研发通用(C卷)

文章声明:题目来源 牛客 平台,如有侵权,请联系删除!

  • 28
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OPPO IC笔试题是一道由OPPO公司出题的考察应聘者电子工程知识和能力的笔试题目。根据题目要求,我将使用300字中文回答这道题目。 根据OPPO IC笔试题,题目要求是设计一种电源管理芯片。首先,电源管理芯片是一种用于管理和控制电力供应系统的集成电路。它可以将输入电压转换为恰当的输出电压,并提供电流稳定和电池充电功能。 为了设计这种电源管理芯片,首先需要明确设计的目标和要求。比如,芯片的输入电压范围、输出电压和电流要求、电池充电功能等。然后,进行电路设计,包括选择适当的元器件、搭建电路拓扑结构,以满足设计要求。 接下来,需要进行电路模拟和性能测试。使用电路仿真软件,对设计的电路进行模拟,验证其在不同工作条件下的性能。包括输入输出电压波形、电流稳定性、功耗以及保护功能等。 在模拟和测试过程中,需要关注电路的效率、温度、稳定性和安全性等因素。如果模拟和测试结果符合设计要求,就可以将其进一步制造成芯片原型。 在芯片原型制造完成后,需要进行实际测试和验证。使用测试设备和工具,验证电源管理芯片在实际使用中的性能和稳定性。 最后,完成设计文档和报告。记录整个设计和验证的过程,包括电路图、模拟结果、测试数据和验证报告等。并对设计中遇到的问题和解决方案进行总结。 总之,设计一种电源管理芯片需要进行目标确定、电路设计、模拟测试、制造验证和文档报告等过程。这道OPPO IC笔试题考察了应聘者的电子工程知识和设计能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值