【备战秋招】每日一题:4月23日美团春招:题面+题目思路 + C++/python/js/Go/java带注释

news2024/11/18 11:26:06

2023大厂笔试模拟练习网站(含题解)
www.codefun2000.com
最近我们一直在将收集到的各种大厂笔试的解题思路还原成题目并制作数据,挂载到我们的OJ上,供大家学习交流,体会笔试难度。现已录入200+道互联网大厂模拟练习题,还在极速更新中。欢迎关注公众号“塔子哥学算法”获取最新消息。

提交链接:

https://codefun2000.com/p/P1138

为了更好的阅读体检,可以查看OJ上的题解。进入提交链接,点击右边菜单栏的"查看塔子哥的题解"

在线评测链接:P1245

题目内容

塔子哥是一个热爱学习的大学生,他的梦想是成为一名优秀的算法竞赛高手。为了实现自己的梦想,他需要获得奖学金,以便有足够的时间和资金去参加各种比赛和训练。但是,塔子哥所在的学校对于奖学金的评定非常严格,要求塔子哥必须保持优异的成绩。

塔子哥总共修习了 n 门课程,每门课程都有一个学分 a_i,表示这门课程的重要程度。而这门课塔子哥的成绩是b_i,表示塔子哥在这门课程上的表现。塔子哥所在学校对于奖学金的评定非常简单:只要所有课程的均分不低于一个给定的标准 X ,而且没有任何课程挂科,就可以申请奖学金。均分是指所有课程的成绩按照学分加权的平均值,而一门课程挂科即该课成绩低于 60 分。

现在塔子哥想要知道,在每种课业情况下他能否申请奖学金。他会给你总共若干次询问,每次询问他会告诉你他修习了哪些课程,每门课程的学分和成绩,以及奖学金的评定标准 X 。你需要帮助塔子哥判断,在每次询问中,他是否满足申请奖学金的条件。

输入描述

第一行有一个正整数 T(1 \leq T \leq 100) ,表示询问次数;

对于每组询问中:

第一行有两个正整数 n(1\leq n \leq 10^2), X(1 \leq X \leq 100) 表示有几门课和评定标准;

第二行中有 n 个正整数 a_i 表示每一科的学分; (1 \leq a_i \leq 100)

第三四行有 n 个正整数 b_i 表示每一科的成绩。 (1 \leq b_i \leq 100)

输出描述

输出为对于每次询问,输出 Yes 或者 No 表示能或不能申请奖学金。

样例

输入

3
5 97
5 4 8 2 4
72 92 64 96 100
5 87
1 7 7 3 8
64 69 98 72 91
5 61
10 7 8 2 3
100 83 72 91 63

输出

No
No
Yes

思路

模拟

模拟题,累加学分加权总和并判断是否达到要求即可。

时间复杂度:O(n)

类似题目推荐

本题比较简单。

LeetCode

周赛/双周赛 第一题

Codefun2000

  1. 美的 P1232. 2023.04.19-笔试-第一题-交换数值

  2. P1174 华为od 2023.04.08--第一题-箱子之形摆放

  3. P1166 美团 2023.04.08-第一题-换座位

  4. P1245 美团 2023.04.23-春招-第一题-申请奖学金

代码

CPP

#include <bits/stdc++.h>
using namespace std;
​
const int N = 110;
int a[N];
​
void solve() {
    int n, x, sum = 0, sums = 0;
    bool ok = true;
​
    cin >> n >> x;
​
    // 计算学分总和
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
        sums += a[i];
    }
​
    // 计算学分×分数总和
    for (int i = 0; i < n; ++i) {
        int y; cin >> y;
        if (y < 60) ok = false;
        sum += y * a[i];
    }
​
    // 有小于 60 分的课程
    if (!ok) cout << "No\n";
    else {
        // 课程加权平均分小于 x
        if (sum < sums * x) cout << "No\n";
        else cout << "Yes\n";
    }
}
​
int main()
{
    int T = 1;
    cin >> T;
    while (T--) {
        solve();
    }
​
    return 0;
}

python

T = int(input())
while T > 0:
    n, x = map(int, input().split())
    a = list(map(int, input().split()))
    b = list(map(int, input().split()))
​
    # 遍历找是否存在一门课程的分数小于 60 分
    ok = True
    for i in range(n):
        if b[i] < 60:
            ok = False
            break
​
    # 课程存在一门课程小于 60分
    if not ok:
        print("No")
    else:
        # 课程加权平均分小于 x
        if sum(a[i] * b[i] for i in range(n)) < sum(a) * x:
            print("No")
        else:
            print("Yes")
​
    T -= 1
​

Java

import java.util.*;
​
public class Main {
​
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
​
        int T = sc.nextInt();
        while (T-- > 0) {
            int n = sc.nextInt(), x = sc.nextInt();
            int[] a = new int[n];
            int[] b = new int[n];
​
            for (int i = 0; i < n; ++i) a[i] = sc.nextInt();
            for (int i = 0; i < n; ++i) b[i] = sc.nextInt();
​
            boolean ok = true;
            // 遍历找是否存在一门课程的分数小于 60 分
            for (int i = 0; i < n; ++i) {
                if (b[i] < 60) {
                    ok = false;
                    break;
                }
            }
​
            if (!ok) {
                // 课程存在一门课程小于 60分
                System.out.println("No");
            } else {
                int sum = 0;
                int sumc = 0;
                // 计算a[i] * b[i] 总和以及学分总和
                for (int i = 0; i < n; ++i) {
                    sum += a[i] * b[i];
                    sumc += a[i];
                }
                if (sum < sumc * x) {
                    // 课程加权平均分小于 x
                    System.out.println("No");
                } else {
                    System.out.println("Yes");
                }
            }
        }
    }
}

Go

package main
​
import "fmt"
​
const N = 110
​
func main() {
    var T int
    fmt.Scan(&T)
​
    for T > 0 {
        T -= 1
​
        var n, x int
        a := make([]int, N)
        fmt.Scan(&n, &x)
​
        sums := 0
        for i := 0; i < n; i++ {
            fmt.Scan(&a[i])
            sums += a[i]
        }
​
        ok := true
        sum := 0
        for i := 0; i < n; i++ {
            var y int
            fmt.Scan(&y)
            // 计算a[i] * b[i] 总和以及学分总和
            sum += a[i] * y
            // 遍历找是否存在一门课程的分数小于 60 分
            if y < 60 {
                ok = false
            }
        }
​
        if !ok {
            // 课程存在一门课程小于 60分
            fmt.Println("No")
        } else {
            // 课程加权平均分小于 x
            if sum < sums*x {
                fmt.Println("No")
            } else {
                fmt.Println("Yes")
            }
        }
    }
}
​

Js

process.stdin.resume();
process.stdin.setEncoding('utf-8');
let input = '';
process.stdin.on('data', (data) => {
    input += data;
    return;
});
process.stdin.on('end', () => {
    const lines = input.trim().split('\n');
    let T = parseInt(lines[0]);
​
    for (let i = 1, t = 1; i <= T; i++) {
        const [n, x] = lines[t++].trim().split(' ').map(Number);
        const a = lines[t++].trim().split(' ').map(Number);
        const b = lines[t++].trim().split(' ').map(Number);
​
        // 遍历找是否存在一门课程的分数小于 60 分
        let ok = true;
        for (let j = 0; j < n; j++) {
            if (b[j] < 60) {
                ok = false;
                break;
            }
        }
​
        // 课程存在一门课程小于 60 分
        if (!ok) {
            console.log("No");
        } else {
            // 课程加权平均分小于 x
            if (a.reduce((acc, cur, i) => acc + cur * b[i], 0) < sum(a) * x) {
                console.log("No");
            } else {
                console.log("Yes");
            }
        }
    }
});
​
function sum(arr) {
    return arr.reduce((acc, cur) => acc + cur, 0);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/641764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Stable Diffusion WebUI 环境

Stable Diffusion 是热门的文本到图像的生成扩散模型&#xff0c;本文介绍了如何准备其 WebUI 环境。 Stability AI Stability API Extension for Automatic1111 WebUI Stable Diffusion web UI 环境基础 OS: Ubuntu 22.04.2 LTSKernel: 5.19.0CPU: AMD Ryzen 7 3700XGPU: N…

Docker六脉神剑 - Mac极速体验

说到Docker, 现在可是"家喻户晓"。但是随着Docker的生态越来越强大, 资料越来越多, 反而对新手越来越不友好, 好多人准备学习一下, 但是又不知从哪入手&#xff1f; 想要玩Docker, 首先要先明白, Docker是干嘛的&#xff1f;可以解决什么问题&#xff1f;使用Docker可…

Linux中的用户和组的分类

目录 Linux中的用户和组的分类 用户分类 超级用户 系统用户 普通用户 组的分类 基本组&#xff08;私有组&#xff09; 附加组&#xff08;公有组&#xff09; 系统组 Linux中用户和用户组的配置文件 在Linux中&#xff0c;用户账号、密码、用户组信息和用户组密码均…

【滤波】无迹卡尔曼滤波

本文主要翻译自rlabbe/Kalman-and-Bayesian-Filters-in-Python的第10章节10-Unscented-Kalman-Filter&#xff08;无迹卡尔曼滤波&#xff09;。 %matplotlib inline# format the book import book_format book_format.set_style()前文 在上一章中&#xff0c;我们讨论了非线…

Elasticsearch:使用 ELSER 进行语义搜索

Elastic Learned Sparse EncodeR&#xff08;或 ELSER&#xff09;是一种由 Elastic 训练的 NLP 模型&#xff0c;使你能够使用稀疏向量表示来执行语义搜索。 语义搜索不是根据搜索词进行字面匹配&#xff0c;而是根据搜索查询的意图和上下文含义检索结果。 本教程中的说明向你…

【QQ界面展示-设置背景图拉伸方式 Objective-C语言】

一、接下来,我们就给大家设一下这个正文的背景图 1.因为我们现在,我们现在看一下, 在我们这个示例程序里面,正文,根据时你发的消息,还是对方发的消息,正文这个背景图,是不一样的, 所以说,这个正文的背景图,也要根据数据来判断, 判断数据里面那个类型是对方,还是…

端口隔离是什么?为什么需要端口隔离、如何实现端口隔离?

目录 一. 什么是端口隔离 二. 为什么需要端口隔离 三. 端口隔离的原理 1. 硬件隔离 2. 软件隔离 四. 端口隔离的实现方法 1. VLAN 2. 网络隔离 3. 防火墙 五. VLAN端口隔离 1. VLAN端口隔离方式 2. VLAN端口隔离配置案例 3. VLAN 端口隔离的注意事项 六. 端口隔离…

【数据库】Mysql数据库初体验

文章目录 一、数据库基本概念1. 数据 (Data)的概念2. 表的概念3. 数据库的概念4. 数据库管理系统5. 数据库系统 二、 数据库的发展1. 第一代数据库2. 第二代数据库3. 第三代数据库 三、主流的数据库介绍1. SQL Server&#xff08;微软公司产品&#xff09;2. Oracle &#xff0…

35. QT中执行linux命令或者shell脚本

1. 说明 Qt在linux系统中进行软件开发时,有时需要通过qt调用命令行终端执行一些命令,可以比较快速方便的实现某些功能。在qt中调用命令行终端,相当于启动了另外一个应用程序,此时可以借助Qt提供的辅助类QProcess来实现,当然也有其它的实现方式,因为QProcess使用有很多优…

pytest自动化测试框架基础篇

目录 前言&#xff1a; 一、单元测试框架 二、pytest简介以及常用插件安装 三、pytest默认测试用例的规则以及基础应用 四、pytest跳过测试用例 五、pytest测试用例的前后置&#xff0c;固件 前言&#xff1a; pytest是一个基于Python语言的自动化测试框架&#xff0c;它…

声网云市场 —— 实时互动开发者的 API 商店

声网云市场是面向实时互动开发者的 API 商店&#xff0c;让开发者在使用声网 RTC 的同时&#xff0c;可以快速集成实时互动扩展能力&#xff0c;比如美颜、变声、语音转文字、实时翻译、视频审核、语音审核等等&#xff0c;让开发者专注在业务逻辑和用户体验上&#xff0c;免去…

ESXi 7.0 U3m Lenovo (联想) 定制版 OEM Custom Installer CD

VMware ESXi 7.0 Update 3m - 领先的裸机 Hypervisor (All OEM Customized Installer CDs) ESXi 7.0 U3m Standard (标准版) ESXi 7.0 U3m Dell (戴尔) 定制版 OEM Custom Installer CD ESXi 7.0 U3m HPE (慧与) 定制版 OEM Custom Installer CD ESXi 7.0 U3m Lenovo (联想) 定…

RTX3070安装spconv1.1

系统环境&#xff1a; torch:1.8.1 cuda:11.1 cudnn:8.0.5 cpu:RTX3070 gcc:7.5.0&#xff08;g 7.5.0&#xff0c;c14需要g5.2以上&#xff09; cmake:3.18.3&#xff08;3.13.2及以上&#xff09; 第一步环境配置 在开始安装前&#xff0c;需要确保已经安装cuda和cudnn。 …

微软 AI 华人先驱黄学东正式宣布离职,将加入 Zoom 担任 CTO

微软华人 AI 版图上一块不可或缺的拼图&#xff0c;现在也离开了。 雷峰网独家获悉&#xff0c;微软 AI 华人先驱黄学东在社交媒体正式宣布从微软离职&#xff0c;将加入 Zoom 担任 CTO。 上世纪六十年代出生的黄学东是与变化共生、在变化中成长的一代人。 1962年&#xff0c…

树和二叉树的基本概念和性质

树和二叉树的基本概念和性质 文章目录 树和二叉树的基本概念和性质树重要概念树和非树是树的必要条件 二叉树二叉树的特点满二叉树与完全二叉树二叉树的性质 二叉树存储形式链式存储二叉链三叉链 顺序存储 树 重要概念 树是递归定义的 节点的度&#xff1a;一个节点含有子树的…

k8s kube-proxy详解

一、kube-proxy简介 kube-proxy是kubernetes中网络核心组件&#xff0c;实现了服务暴露和转发等网络功能。kube-proxy支持userspace&#xff0c;ipvs和iptables三种代理模式。userspace性能问题较严重&#xff0c;基本不再使用&#xff0c;应用最多的是iptables和ipvs模式。 …

关于c++ extern关键字

解释和说明参考&#xff1a; (227条消息) C extern关键字_Candyerer的博客-CSDN博客 (227条消息) 对于C中的extern关键字用法的理解_c extern_Fanfan21ya的博客-CSDN博客 个人写了一个案例&#xff0c;代码结构如下 在总结一下 1.a.cpp文件需要引用b.cpp的文件中的变量或…

一文详解!嵌入式软件的自动化测试框架、测试流程与功能研究分析

目录 引言 1.嵌入式软件自动化测试平台分析 2.嵌入式软件自动化测试平台概要设计 3.嵌入式软件自动化测试平台详细设计 3.3 功能设计 引言 嵌入式软件是指被设计用于嵌入或控制另一个产品、设备或系统的软件。它在各种应用领域&#xff08;例如消费电子、工业控制、医疗设…

steam搬砖全套操作流程之如何卖货(第③课)

上一篇文章阿阳分享了Steam项目如何选品&#xff0c;今天就给大家说说装备如何发货等重要事项。 本节课主要为大家讲解&#xff1a;定价规则&#xff0c;加价原则&#xff0c;认识装备磨损度和印花&#xff0c;自动发货软件和自动上架软件的讲解。 &#xff08;Steam装备选品…

ESXi 7.0 U3m Inspur (浪潮) 定制版 OEM Custom Installer CD

VMware ESXi 7.0 Update 3m - 领先的裸机 Hypervisor (All OEM Customized Installer CDs) ESXi 7.0 U3m Standard (标准版) ESXi 7.0 U3m Dell (戴尔) 定制版 OEM Custom Installer CD ESXi 7.0 U3m HPE (慧与) 定制版 OEM Custom Installer CD ESXi 7.0 U3m Lenovo (联想) 定…