编程题(4):餐馆

笔试题练习(滴滴17年真题) 1.连续最大和题目一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3 输入描述:输入为两行。 第一行一个整数n(1 <= n <= 100000),表示一共有n个元素 第二行为n个数,即每个元素,每个整数都在32位int范围内。以空格分隔。输出描述:所有连续子数组中和最大的值。题目分析法一:可以找出规律,如果当前和小于0,... 阅读详情

[编程题] 餐馆

某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大 

输入描述:

输入包括m+2行。
第一行两个整数n(1 <= n <= 50000),m(1 <= m <= 50000)
第二行为n个参数a,即每个桌子可容纳的最大人数,以空格分隔,范围均在32位int范围内。
接下来m行,每行两个参数b,c。分别表示第i批客人的人数和预计消费金额,以空格分隔,范围均在32位int范围内。

输出描述:

输出一个整数,表示最大的总预计消费金额

输入例子:

3 5
2 4 2
1 3
3 5
3 7
5 9
1 10

输出例子:

20

思想:优先队列

代码:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner  sc=new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        sc.nextLine();
        String[] s1=sc.nextLine().split(" ");
        int[] table= new int[n];
        for(int i=0;i<n;i++){
            table[i]=Integer.parseInt(s1[i]);
        }
        Arrays.sort(table);

        PriorityQueue<Customer> pq=new PriorityQueue<Customer>();
        for(int i=0;i<m;i++){
            int person=sc.nextInt();
            int money=sc.nextInt();
            if(person<=table[n-1]){  //最大容量的桌子可以坐下时,将客户加入队列
                pq.offer(new Customer(person, money));
            }
        }
        long sum=0; //用int会出错
        int count=0;
        int[] visited = new int[n]; //和table[]一一对应,默认全是0
        for(int i=0;!pq.isEmpty();i++){
            //顶多把队列中的安排完
            //由于列队中的都有资格吃,且排在前边的最有资格,应该安排;
            //安排的时候注意先从小桌子安排,不行再换大桌子
            Customer c=pq.poll();
            for(int j=0;j<n;j++){ //遍历桌子
                if(table[j] >= c.person && visited[j]==0 ){ //可以坐下
                    sum+=c.money;                   
                    visited[j]=1;//j号桌已有客人
                    count++;
                    break;
                }
            }
            if(count==n){
                break;
            }
        }       
        System.out.println(sum);
    }
    static class Customer implements Comparable<Customer>{
        int person;
        int money;
        public Customer(){}
        public Customer(int person,int money){
            this.person=person;
            this.money=money;
        }
        @Override
        public int compareTo(Customer o) { //按钱大小排序         
            if(this.money < o.money){
                return 1;
            }else if(this.money > o.money){
                return -1;
            }
            return 0;
        }

    } 
}

滴滴2017校招编程题:餐馆 题目描述:某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大输入描述:输入包括m+2行。 第一行两个整数n(1 &lt;= n &lt;= 50000),m(1 &lt;= m &lt;= 50000) 第二行为n个参数a,即每个桌子可容纳的最大人数,... 阅读详情

相关推荐

吴恩达机器学习编程题ex1上 单变量线性回归: (python版含题目要求、代码、注解)

不得不说安卓老师是真的用心良苦,给我们把编程题弄成了填空题,但是很可惜原版使用的是Octave和MATLAB所以作为初学者我就直接当编程题用python去做了 问题:让你绘制一个5阶单位阵 答案:     在本练习的这一部分,你将应用线性回归来实现通过用一个变量x(人口)预测y(食品卡车的利润)。假设你是一位首席执行官,餐饮连锁店正在考虑不同的城市开设新的出口。这个连锁已经把卡...

weixin_42415485的博客 3455

餐馆(餐馆有n张桌子,每张桌子有一个参数a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 不允许拼桌的情况下,选择其中一部分客人,使得总预计消费金额最大)

餐馆 某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大 输入描述: 输入包括m+2行。 第一行两个整数n(1 <= n <= 50000),m(1 <= m <= 50000) 第二行为n个参数a,即每个桌子可容纳...

qq_43109561的博客 2426

告别SquareLine!用免费的NXP GUI-Guider为海思3516AV300开发LVGL界面(附完整移植流程)

本文详细介绍了如何利用免费的NXP GUI-Guider工具为海思Hi3516AV300开发LVGL界面,包括环境配置、代码移植和性能优化等全流程实战指南。特别针对二维码组件缺失等常见问题提供解决方案,帮助开发者零成本构建高效嵌入式GUI系统。

weixin_28292761的博客 415

餐馆问题

题目描述某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数;有m批客人,每批客人有两个参数:b人数,c预计消费金额。在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大。输入描述:输入包括m+2行。 第一行两个整数n(1 <= n <= 50000),m(1 <= m <= 50000) 第二行为n个参数a,即每个桌子可容纳的最大人数,以空格分隔,范围均在3

Follow__Heart的博客 1165

第四章 汇川技术InoProShop入门之串口自由协议解读

摘要: 串口自由协议是工业自动化中针对特定需求设计的自定义通信协议,具有高度灵活性和针对性,适用于小型设备、实时控制等场景。其核心包括自定义帧结构(起始符、地址码、数据区、校验位等)和通信规则(波特率、交互机制)。相比标准协议,自由协议效率更高但兼容性弱,设计时需注重可靠性、效率和可扩展性,适用于定制化或高实时性需求,如传感器数据采集或老旧设备改造。典型应用需平衡精简帧结构与抗干扰能力,同时预留扩展空间。

zyfucking2010的博客 2211

STM32CubeMX定时器进阶玩法:用编码器模式实现电机转速测量(附避坑清单)

本文详细介绍了如何使用STM32CubeMX配置定时器的编码器模式实现电机转速测量,包括硬件连接、CubeMX配置关键步骤、转速计算算法及常见问题解决方案。特别针对工业控制和机器人开发中的高精度需求,提供了实用的避坑清单和优化技巧,帮助开发者高效完成项目。

joy55的博客 203

牛客网 [编程题]餐馆

题目描述:链接:https://www.nowcoder.com/questionTerminal/d2cced737eb54a3aa550f53bb3cc19d0来源:牛客网某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大 输入描述:输入包括m+2...

cc_fys的博客 1590

【首发独家】华为OD机试 - 服务中心选址、服务中心的最佳位置(C 语言解题)

最近更新的博客 华为 od 2023 | 什么是华为 od,od 薪资待遇,od 机试题清单 华为 OD 机试真题大全,用 Python 解华为机试题 | 机试宝典 【华为 OD 机试】全流程解析+经验分享,题型分享,防作弊指南 华为 od 机试,独家整理 已参加机试人员的实战技巧 本篇华为 OD 机试题解:服务中心选址、服务中心的最佳位置

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 1万+

餐馆(顾客选择)问题

餐馆 牛客网:餐馆 题目描述 某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大 输入描述: 输入包括m+2行。 第一行两个整数n(1 <= n <= 50000),m(1 <= m <= 50000) 第二行为n个参数a,即每...

weixin_42564710的博客 1186

【APM】在Kubernetes中,使用Helm安装Grafana 9.5.1

Grafana是一款流行的开源数据可视化和分析平台,它特别擅长处理时序数据,即随时间变化的数据,因此在监控系统性能、应用程序指标、物联网(IoT)设备数据等领域有着广泛的应用。

CN_Eden 1200

YOLOv8-pose姿态估计模型从训练到RK3588部署:让边缘端骨骼识别速度突破60FPS

本教程从“模型训练-转换-边缘部署”全链路拆解了YOLOv8-pose姿态估计方案在RK3588上的落地过程,每一步都经过实战验证。无论是智能健身的动作实时纠正,还是工业设备的关键部件姿态检测,这套流程都能让你以最低成本实现高精度、高实时性的姿态估计应用。如果你在实践中遇到模型转换报错、部署性能不达标等问题,可聚焦某一环节深入优化——毕竟,让AI在边缘端“精准捕捉每一个关键点”,才是技术驱动场景创新的核心。

know_F0727的博客 189

[编程题]餐馆

某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大 输入描述: 输入包括m+2行。 第一行两个整数n(1 <= n <= 50000),m(1 <= m <= 50000) 第二行为n个参数a,即每个桌子可容纳的最大人数,以空格分隔,范围均在3

stloztoeplitz的博客 1017

手势识别器:实现手部动作识别器

在本篇文章中,我们将使用Python来实现一个简单的手部动作识别器。然后,我们通过循环从摄像头获取每一帧图像,并对每一帧图像进行处理。我们提取手部关键点并计算手势的特征向量,然后将其添加到特征列表和标签列表中。接下来,我们再次从摄像头获取每一帧图像,并进行手势识别。我们提取手部关键点并计算手势的特征向量,然后使用训练好的分类器来预测手势,并在图像上显示出来。在这个实现中,我们将使用MediaPipe库来检测和跟踪手部关键点,然后使用K最近邻(K-Nearest Neighbors)算法对手势进行分类。

BitSlinger的博客 238

[编程题] 餐馆

额这个通不过,超时,问题不明。。有空弄 某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大  输入描述: 输入包括m+2行。 第一行两个整数n(1 <= n <= 50000),m(1 <= m <= 50000) 第二行为n个参数a,即

qq_27262609的博客 920

最新Python爬虫实战(入门爬虫篇)——案例1:某瓣网站Top250图片数据采集(附上完整爬虫代码)

本次案例通过Python爬虫技术实现了某瓣Top250电影封面的批量下载。代码采用模块化设计,函数实现cookies的自动解析,简化了配置流程,涵盖请求、解析、存储的完整流程。学习重点包括:抓包工具定位数据源、正则表达式匹配图片链接、模拟请求头绕过反爬机制、以及自动化文件管理。需要注意控制请求频率并遵守网站使用规范,适用于入门爬虫实践。

努力让自己发光,对的人才能迎着光而来 16万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

滴滴2017校招笔试编程题:餐馆(贪心+二分)Java

题目描述 某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大 输入描述: 输入包括m+2行。 第一行两个整数n(1 <= n <= 50000),m(1 <= m <= 50000) 第二行为n个参数a,即每个桌子可容纳的最大人...

IT Crowd的博客 704

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

滴滴2017校园招聘在线编程题

这次做的滴滴在线笔试题有两道编程题。第一题是常规题目,解法有多种,第二题有一定难度,记录如下: 1、连续最大和 题目描述 一个数组有N个元素,求连续子数组的最大和。例如:[-1,2,1],和最大的连续子数组为[2,1],其和为3。 输入描述 输入为两行。第一行一个整数n(1,表示一共有n个元素,第二行为n个数,每个元素每个整数都在32位int范围内。以空格

竭尽全力的专栏 1797

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[Java编程题]2020滴滴笔试(餐馆)&2021顺丰笔试(租服务器)

链接:https://www.nowcoder.com/questionTerminal/d2cced737eb54a3aa550f53bb3cc19d0 来源:牛客网 题目描述 某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大 输入描述: 输入包括m+2行。 第一行两个整数n(1 <= n <= 50000),m(1 <= m <=

Josvin 603

滴滴出行2017秋招笔试真题-编程题汇总_Java实现

滴滴出行2017秋招笔试真题-编程题汇总_Java实现 注:有的题参考别人的思路,用我最容易理解的代码编的程序,所以可以不能最优的解法,后续我会进行更新,只是一个思路,我的笔记而已,所以不喜勿喷~~~ 我会将具体将具体参考代码的博客放在后面,若有侵权,请告知我,我会立刻删除。 (1)连续最大和 解题思路:这个简单,就是定义一个sum,遍历数组,若是sum<0,说明前面的数组并不好,所以sum...

Mary~fighting的博客 1003

滴滴2016.09.06校招 在线笔试 - 2道编程题

滴滴2016.09.06校招 在线笔试 - 2道编程题1、连续子数组的最大和题目描述一个数组有N个元素,求连续子数组的最大和。例如:[-1,2,1],和最大的连续子数组为[2,1],其和为3。输入描述输入为两行。第一行一个整数n(1<=n<=100000),表示一共有n个元素,第二行为n个数,每个元素每个整数都在32位int范围内。以空格分隔。输出描述所有连续子数组中和最大的值。输入例子3-1 2

极客学长Bravo | 突破信息差 | 副业生财有术 3352

餐厅过滤器(自定义排序)

一、题目 给你一个餐馆信息数组 restaurants,其中 restaurants[i] = [idi, ratingi, veganFriendlyi, pricei, distancei]。你必须使用以下三个过滤器来过滤这些餐馆信息。 其中素食者友好过滤器 veganFriendly 的值可以为 true 或者 false,如果为 true 就意味着你应该只包括 veganFriendlyi 为 true 的餐馆,为 false 则意味着可以包括任何餐馆。此外,我们还有最大价格 maxPrice 和

qq_34080360的博客 291

滴滴2017秋招编程题

滴滴2017秋招

peaktravel的专栏 776

​LeetCode解法汇总1333. 餐厅过滤器​

在按照 veganFriendly = 1, maxPrice = 50 和 maxDistance = 10 进行过滤后,我们得到了餐馆 3, 餐馆 1 和 餐馆 5(按评分从高到低排序)。餐馆 1 [id=1, rating=4, veganFriendly=1, price=40, distance=10]餐馆 5 [id=5, rating=1, veganFriendly=1, price=15, distance=1]两个过滤器,它们分别考虑餐厅的价格因素和距离因素的最大值。

分享+记录 291

美团大众点评2017校园招聘笔试(编程题)

美团大众点评2017校园招聘笔试(编程题)

滴水藏海max的博客 2208

电子学会 青少年软件编程等级考试 C语言 4 级

电子学会 青少年软件编程等级考试 C语言 4 级

青少年趣味编程 745
上一篇: 编程题(3):连续最大和
下一篇: dfs
王小禾
博客等级 码龄11年 80粉丝 291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值