小红书Red Star提前批算法笔试

【嵌入式未来】

嵌入式软件开发最强攻略一篇就够了!《嵌入式软件开发笔试与面试手册》https://blog.nowcoder.net/zhuanlan/jvN8gj

《嵌入式软件笔试-2023年真题汇总》专栏https://blog.nowcoder.net/zhuanlan/0oDWVm

小红的数组构造

题目描述:

小红的数组构造小红希望你构造一个数组满足以下条件:1. 数组共有n个元素,且所有元素两两不相等。2. 所有元素的最大公约数等于k3. 所有元素之和尽可能小。请你输出数组元素之和的最小值。

 

输入描述

两个正整数nk

1 n,k 10^5

输出描述

一个正整数,代表数组元素之和的最小值。

 

样例输入

3 1

样例输出

6

示例 2

输入

2 2

输出

6

#include <iostream>
using namespace std;

int main() {
    long long n, k;
    cin >> n >> k;
    cout << ((1+n)*n/2) * k << endl;
    return 0;
}

精华帖子

题目描述:

小红书的推荐帖子列表为[0,n],其中所有的帖子初始状态为“普通”,现在运营同学把其中的一些帖子区间标记为了“精华”。

 

输入描述

第一行输入两个正整数n,m,k,代表初始帖子列表长度,精华区间的数量,以及运营同学准备截取的长度。

接下来的m行,每行输入两个正整数li,ri,代表第i个区间。

1 k n 1000000000

1 m 100000

0 li < ri n

保证任意两个区间是不重叠的。

输出描述

一个正整数,代表最多的精华帖子数量。

 

样例输入

5 2 3

1 2

3 5

样例输出

2

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int n, m, k;
    cin >> n >> m >> k;  

    vector<vector<int>> itv(m, vector<int>(2));  

    for (int i = 0; i < m; i++) {
        cin >> itv[i][0] >> itv[i][1];  
    }

    sort(itv.begin(), itv.end());
    vector<int> pres(m+1, 0);

    for (int i = 1; i <= m; i++) pres[i] = pres[i-1] + (itv[i-1][1] - itv[i - 1][0]);  // 计算前缀和

    int res = 0;  // 初始化结果为0

    for (int i = 0 ; i < m ; i++) {

        int l = i, r = m ;
        // 使用二分查找找到满足条件的区间
        while (l < r) {
            int mid = (l + r) / 2;
          

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏主要发布嵌入式软件开发相关岗位2023年(2024届)的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。

全部评论
return round(k*n*(n+1)/2);
点赞 回复 分享
发布于 2023-07-28 16:52 广东

相关推荐

HNU_fsq:建议直接出国,这简历太6了。自愧不如
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-15 14:22
点赞 评论 收藏
分享
2 13 评论
分享
牛客网
牛客企业服务