码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • T1 小美的数组询问(15分) - 美团编程题 & 题解


    考试平台: 牛客网

    题目类型: 30道单选题(60分)+ 2 道编程题 (15分 + 25分)

    考试时间: 2024-03-09 (两小时)

    题目描述

    小美拿到了一个由正整数组成的数组,但其中有一些元素是未知的(用 0 来表示)。
    现在小美想知道,如果那些未知的元素在区间 [l,r] 范围内随机取值的话,数组所有元素之和的最小值和最大值分别是多少?
    共有q 次询问。

    输入描述:

    第一行输入两个正整数 n,q,代表数组大小和询问次数。
    第二行输入n个整数 a i a_i ai​,其中如果输入的 a i a_i ai​ 为 0,那么说明 a i a_i ai​ 是未知的。
    接下来的q行,每行输入两个正整数 l,r,代表一次询问。
    1 ≤ n , q ≤ 1 0 5 1\leq n,q \leq 10^5 1≤n,q≤105
    0 ≤ a i ≤ 1 0 9 0 \leq a_i \leq 10^9 0≤ai​≤109
    1 ≤ l ≤ r ≤ 1 0 9 1\leq l \leq r \leq 10^9 1≤l≤r≤109

    输出描述:

    输出q行,每行输出两个正整数,代表所有元素之和的最小值和最大值。

    示例:

    输入:
    3 2
    1 0 3
    1 2
    4 4
    
    输出:
    5 6
    8 8
    
    说明:
    只有第二个元素是未知的。
    第一次询问,数组最小的和是 1+1=3=5,最大的和是 1+2+3=6。
    第二次询问,显然数组的元素和必然为 8。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    题解

    n, q = map(int, input().split())
    a = list(map(int, input().split()))
    
    tot = sum(a)
    # 0 的个数
    zero_cnt = sum([1 for v in a if v == 0])
    
    for _ in range(q):
        l, r = map(int, input().split())
        # 最小和: 0 都选 l
        # 最大和: 0 都选 r
        min_sum, max_sum = tot + zero_cnt * l, tot + zero_cnt * r
        print(min_sum, max_sum)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    研发效能DevOps: Ubuntu 部署 JFrog 制品库
    Eclipse的安装以及环境配置
    GPT 学习法:恐怖算力 + 精确算法,实现复杂文献轻松的完美理解、在庞大的不确性中找到确定性
    每个数据工程师都应该了解和使用的10 个 ChatGPT 提示
    图书管理系统【java】
    毕业4年,薪资25k,这一刻,我决定从字节离职了···
    一文搞懂UART通信协议
    CRM商机管理软件:构建客户为中心的管理理念
    被问实习最大的收获是什么可以怎么回答?
    Java的IO框架
  • 原文地址:https://blog.csdn.net/user_longling/article/details/136580906
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号