当前位置: 首页 > news >正文

OPPO 2024届校招正式批笔试题-后端(C卷)

小欧的括号嵌套

题目描述

小欧想要构造一个合法的括号序列满足以下条件:

  • 括号序列长度恰好为 2 × n 2×n 2×n
  • 括号序列的嵌套层数最大值为 r r r

括号嵌套层数是指在一个字符串中,以左括号 “(” 和右括号 “)” 形成的括号对的最大嵌套深度。

输入描述

一行两个整数 n , r ( 1 ≤ r ≤ n ≤ 1 0 5 ) n, r(1 ≤ r ≤ n ≤ 10^5) n,r(1rn105)

输出描述

一行一个字符串表示括号序列。若有多种构造方案,输出任意一个即可。

解题思路

构造一种特殊的满足条件的括号序列即可。

代码实现
int main() {int n, r;scanf("%d%d", &n, &r);string s = string(r, '(') + string(r, ')');for (int k = n / r; k-- > 0; cout << s);cout << string(n % r, '(') + string(n % r, ')');return 0;
}

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

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

小欧的等差数列

题目描述

小欧有一个长度为 n n n,首项为 a a a,公差为 d d d 的等差数列。现在,小欧把这 n n n 个数看作一个集合,每次操作可以从集合中任意选两个数 a i , a j a_i,a_j ai,aj,如果 a i + a j a_i+a_j ai+aj 是偶数,那么可以将 ( a i + a j ) / 2 (a_i+a_j)/2 (ai+aj)/2 加入到集合中。小欧想知道,经过若干次操作后,集合中最多能有多少个数。

输入描述

一行三个整数 n , a , d n, a, d n,a,d,表示等差数列的长度,首项和公差。

  • 1 ≤ n ≤ 1 0 5 1 ≤ n ≤ 10^5 1n105
  • 1 ≤ a , d ≤ 1 0 9 1 ≤ a, d ≤ 10^9 1a,d109
输出描述

输出一个整数,表示集合中最多能有多少个数。

解题思路
  • a i + a j a_i + a_j ai+aj = a + i × d + a + j × d a+i×d+a+j×d a+i×d+a+j×d
  • i + j i+j i+j 为偶数,则 ( a i + a j ) (a_i+a_j) (ai+aj) 为偶数,但 ( a i + a j ) / 2 (a_i+a_j)/2 (ai+aj)/2 已存在于集合中。
  • d d d 为偶数,则 ( a i + a j ) (a_i+a_j) (ai+aj) 为偶数,此时 ( a i + a j ) / 2 (a_i+a_j)/2 (ai+aj)/2 不一定在集合中。
  • 若由集合衍生的数 x x x a , a + d a,a+d a,a+d 之间,那么 x x x 必然可以由 a , a + d a,a+d a,a+d 衍生得到, a + k × d , a + ( k + 1 ) × d a+k×d,a+(k+1)×d a+k×d,a+(k+1)×d 同理。
  • 所以,仅需考虑由 a , a + d a,a+d a,a+d 可以衍生得到多少数即可。
  • d d d 的因数包含 2 k 2^k 2k,那么,由 a , a + d a,a+d a,a+d 可以衍生得到 2 k − 1 2^k-1 2k1 个数,由集合可衍生得到的数的个数为 ( 2 k − 1 ) × ( n − 1 ) (2^k-1) × (n-1) (2k1)×(n1)
代码实现
int main() {long long n, a, d, k = 0;cin >> n >> a >> d;while (!(d & 1))k++, d >>= 1;cout << n + ((1 << k) - 1) * (n - 1);return 0;
}

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

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

小欧喝水

小欧拿了 n n n 个杯子排成了一排,其中有 k k k 个杯子装满了水,剩余的 n − k n-k nk 个杯子为空的。小欧每回合的操作如下:

  1. 随机选择一个杯子。
  2. 杯子是空的。回合直接结束。
  3. 杯子是满的。如果小欧上一回合喝过了水,则回合结束;否则将喝完这杯水,回合结束。

小欧想知道,她喝完所有水的回合数期望是多少?

输入描述

两个正整数 n , k n,k n,k,用空格隔开。

  • 1 ≤ k ≤ n ≤ 1 0 6 1≤ k ≤ n ≤ 10^6 1kn106
输出描述

一个浮点数,代表期望的回合数。如果你的答案和正确答案的误差不超过 1 0 − 6 10^{-6} 106,则认为答案正确。

解题思路

本题留给读者小试牛刀。

END

题目来源:OPPO 2024届校招正式批笔试题-后端(C卷)

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • LLM基础模型系列:Prompt-Tuning
  • 前端实现将多个页面导出为pdf(分页)
  • SSL vpn easy connect 选路连接失败,可能当前连接网络异常,请稍后重试
  • 防火墙--双机热备
  • python + Pytest + requests 的接口自动化步骤
  • SQL基础 | NOT NULL 约束介绍
  • 7.13实训日志
  • Qt易错总结
  • Chrome浏览器的Profile数据内容简介
  • 一边吃谷一边痛,二次元距离三次元还有多远?
  • 电视盒子变身NAS之安装termux
  • IDEA中Git常用操作及Git存储原理
  • LeetCode-计数质数
  • 分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
  • [AHK] WinHttpRequest.5.1报错 0x80092004 找不到对象或属性
  • #Java异常处理
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • ES6系列(二)变量的解构赋值
  • HTTP--网络协议分层,http历史(二)
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • java第三方包学习之lombok
  • JSDuck 与 AngularJS 融合技巧
  • Js基础——数据类型之Null和Undefined
  • React-生命周期杂记
  • storm drpc实例
  • 读懂package.json -- 依赖管理
  • 我建了一个叫Hello World的项目
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • # wps必须要登录激活才能使用吗?
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #微信小程序:微信小程序常见的配置传旨
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (2)(2.10) LTM telemetry
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (理论篇)httpmoudle和httphandler一览
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四)进入MySQL 【事务】
  • (转)程序员技术练级攻略
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET 8.0 中有哪些新的变化?
  • .NET Remoting学习笔记(三)信道
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .net网站发布-允许更新此预编译站点
  • /etc/sudoers (root权限管理)
  • /tmp目录下出现system-private文件夹解决方法
  • @31省区市高考时间表来了,祝考试成功
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?