第十届省赛——7外卖店优先级

news2024/11/16 13:40:29

题目:

“饱了么”外卖系统中维护着N 家外卖店,编号1~N。

每家外卖店都有一个优先级,初始时(0 时刻) 优先级都为0。

每经过1 个时间单位,如果外卖店没有订单,则优先级会减少1,最低减到0;

而如果外卖店有订单,则优先级不减反加,每有一单优先级加2。

如果某家外卖店某时刻优先级大于5,则会被系统加入优先缓存中;

如果优先级小于等于3,则会被清除出优先缓存。

给定T 时刻以内的M 条订单信息,请你计算T 时刻时有多少外卖店在优先缓存中。

输入

第一行包含3 个整数N、M 和T。

以下M 行每行包含两个整数ts 和id,表示ts 时刻编号id 的外卖店收到一个订单

1<=N, M, T<=100000,1<=ts<=T,1<=id<=N。

输出

输出一个整数代表答案。

样例输入

2 6 6

1 1

5 2

3 1

6 2

2 1

6 2

样例输出

1

分析:

先建一个用来储存id和订单时间的数组,然后通过扫描器把id ts打印进去,之后外层控制n(店铺数量,二维数组外层),内层控制t(这个时间之内的订单计算),遍历出每个n的所有时间,然后根据这个时间有多少订单再进行相对应的计算,每次经过一个地方就要判断此时是不是优先缓存。最终true就是优先缓存

下图是题目给定的例子,转换成表格,也就是本题所转换的二维数组

每个格子中有两种情况,

第一种情况是有数字,有数字的话,num就加上(格子中的数字乘以2)这个数字。

第二种情况没有数字,没有数字的情况下,num-1,但如果num==0的话,num继续=0。

每一次判断完格子,就进行一次判断,来判断num符不符合加入优先缓存的条件,加不加入,用boolean判断来判断,加入的话就让boolean等于true。

进行完一个id的num值加减之后,boolean依然为true,那么count++;(该id最终加入到优先缓存中)

步骤:

package 历届真题省赛阶段;

import java.util.Scanner;

public class 测试1 {

    public static void main(String[] args) {
//        第一行包含 3 个整数 N、M 和 T。
//        以下 M 行每行包含两个整数 ts 和 id,表示 ts 时刻编号 id 的外卖店收到
//        一个订单。
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();// 多少个店铺
        int m = sc.nextInt();// 多少条订单
        int t = sc.nextInt();// t时间之内的订单
        int[][] zu = new int[n+1][m+1];//用来储存每个店铺在某个时刻有多少订单
        int count = 0;
        for (int i = 1; i <= m; i++) {
            int ts = sc.nextInt();
            int id = sc.nextInt();
            zu[id][ts]++;//外层id内层时间,数量用值来表示
        }
        for (int i = 1; i <= n; i++) {//遍历数组中每个id的值,根据值进行num的变化
            int num = 0;//缓存值
            boolean flag = false;
            for (int j = 1; j <= t; j++) {
                if (zu[i][j] == 0) {//该时间没有订单的情况
                    if (num == 0) {//如果是0就不用继续减了,不是0的话进行自减
                        num = 0;
                    } else {
                        num--;
                    }
                } else {
                    num += zu[i][j] * 2;//有订单的话,num本身值再加上这个时间订单数量乘以二
                }
                if (num > 5) {//每次经过一个时间都做一次判断,判断此时是不是在优先缓存中
                    flag = true;
                }
                if (num <= 3) {
                    flag = false;
                }
            }
            if (flag) {
                count++;
            }
        }
        System.out.println(count);
        sc.close();
    }
}

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

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

相关文章

New Bing的详细申请步骤与实际功能测试效果展示

文章目录前言申请方式申请出错解决方案测试总结前言 微软表示&#xff0c;new bing正在使用对话式人工智能来创造一种新的浏览网络的方式。用户将能够像ChatGPT那样与Bing聊天&#xff0c;用自然语言提出问题和接受答案。 同时&#xff0c;微软宣布了其搜索引擎Bing的新版本&a…

汽车微控制器芯片F280039CPZRQ1、F280039CSPM、F280039CSPN规格参数

F280039CPZRQ1、F280039CSPM、F280039CSPN是C2000实时微控制器系列中的一款器件。C2000微控制器是可扩展、超低延迟器件&#xff0c;旨在提高电力电子设备的效率&#xff0c;包括但不限于&#xff1a;高功率密度、高开关频率&#xff0c;并支持使用 GaN和SiC技术。F280039CPZRQ…

6个常用Pycharm插件推荐,老手100%都用过

人生苦短 我用python 有些插件是下载后需要重启Pycharm才生效的 免费领源码、安装包&#xff1a;扣扣qun 903971231 PyCharm 本身已经足够优秀&#xff0c; 就算不使用插件&#xff0c; 也可以吊打市面上 90%的 Python 编辑器。 如果硬要我推荐几款实用的话&#xff0c; 那么…

Beats:在 Docker 中同时部署 Metricbeat 和 Elasticsearch

在本教程中&#xff0c;我们将部署一个 metricbeat 来监控正在运行的容器的健康状况和系统指标。 为什么需要监控&#xff0c;为什么需要 Metricbeat&#xff1f; 一个常见的问题&#xff0c;但很少有人回答。 首先&#xff0c;无论我们部署的是 docker 容器还是老式的金属箱&…

代码随想录算法训练营第二十三天 | 669. 修剪二叉搜索树

打卡第23天&#xff0c;这一章节二叉树最后一天&#xff0c;难度渐渐上来了。 今日任务 669.修剪二叉搜索树108.将有序数组转换为二叉搜索树538.把二叉搜索树转换为累加树 669. 修剪二叉搜索树 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。…

中介效应分析-方法和模型发展【论文详解】

中介效应分析-方法和模型发展 – 潘登同学的论文精读 文章目录中介效应分析-方法和模型发展 -- 潘登同学的论文精读检验中介效应流程直接效应、间接效应与总效应完全中介与部分中介Stata代码考虑自变量X对因变量Y的影响, 如果X通过影响变量M而对Y产生影响, 则称M为中介变量。Yc…

VMware15配置NAT模式联通网络

最近为了测试C# 开发的桌面应用程序悬浮球的兼容性&#xff0c;在虚拟机上安装了win7系统和xp系统&#xff0c;之前也安装过黑苹果系统&#xff0c;但是win系统倒是第一次安装&#xff0c;在win7系统联网的时候&#xff0c;踩了一些坑&#xff0c;整理纪录一下。 设置主物理机配…

【JVM篇1】认识JVM,内存区域划分,类加载机制

目录 一、JVM内存区域划分 ①程序计数器(每个线程都有一个) ②栈&#xff1a;保存了局部变量和方法调用的信息(每一个线程都有一个栈) 如果不停地调用方法却没有返回值&#xff0c;会产生什么结果 ③堆(每一个进程都有一个堆&#xff0c;线程共享一个堆) 如何区分一个变量是…

【C++】C++11新特性——基础特性

文章目录一、列表初始化1.1 {}初始化1.2 initializer_list类型二、类型推导2.1 auto2.2 auto注意事项2.3 decltype三、新增与改进3.1 nullptr3.2 范围for3.3 array3.4 forward_list3.5 unordered系列3.6 final与override一、列表初始化 1.1 {}初始化 C11 引入了一个新的初始化…

[数据结构与算法(严蔚敏 C语言第二版)]第1章 绪论(章节题库+答案解析)

练习 选择题 算法的计算量的大小称为计算的&#xff08; &#xff09;。 A&#xff0e;效率 B&#xff0e;复杂性 C&#xff0e;现实性 D&#xff0e;难度 计算机算法指的是解决问题的步骤序列&#xff0c;它必须具备&#xff08; &#xff09;三个特性。 A&#xff0e;可执行…

“快速掌握如何用FFmpeg在Python中截取定时间隔的MP4视频画面“

目录 简介&#xff1a; 源代码&#xff1a; 源代码说明&#xff1a; 这段代码中&#xff0c;首先定义了输入视频文件名、字体文件路径和输出图像文件名格式。然后使用subprocess模块的call函数调用FFmpeg命令。FFmpeg命令被定义为一个列表&#xff0c;其中每个元素都是命令中…

RocketMQ5.0.0消息消费<二> _ 消息队列负载均衡机制

目录 一、消费队列负载均衡概览 二、消费队列负载均衡实现 1. 负载均衡UML 2. 启动RebalanceService线程 3. PUSH模式负载均衡 三、负载均衡策略 四、参考资料 一、消费队列负载均衡概览 RocketMQ默认一个主题下有4个消费队列&#xff0c;集群模式下同一消费组内要求每个…

合并链表相关的练习

目录 一、合并两个有序链表 二、两数相加 一、合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例 2&…

熬夜30天吃透这九大Java核心专题,我收割了3个大厂offer

这次一共收割了3个大厂offer&#xff0c;分别是蚂蚁金服、美团和网易&#xff0c;特意分享这次对我帮助非常大的宝典资料&#xff0c;一共涉及九大核心专题&#xff0c;分别是计算机网络、操作系统、MySQL、Linux、JAVA、JVM、Redis、消息队列与分布式、网站优化相关&#xff0…

MySQL8启动错误“Neither found #innodb_redo subdirectory, nor ib_logfile* files”

今天做MySQL备份文件回复测试,用来检验MySQL备份文件可用性。 MySQL版本8.0.32 备份文件为腾讯云MySQL实例,版本8.0 使用xtrabackup恢复备份。执行过程顺利,启动MySQL时发生错误。提示如下: 注意,这里使用了systemctl stop mysql。虽然启动失败了,但是如果不执行这条…

全国青少年软件编程(Scratch)等级考试一级真题——2019.9

青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;一级&#xff09;分数&#xff1a;100 题数&#xff1a;37一、单选题(共25题&#xff0c;每题2分&#xff0c;共50分)1.小明在做一个采访的小动画&#xff0c;想让主持人角色说“大家好&#xff01;”3秒…

AcWing 3555. 二叉树

第一种做法是dfs。但是注意&#xff0c;如果是非常单纯的dfs&#xff0c;要把每个节点可以到达的所有节点都记录下来&#xff08;父节点两个子节点&#xff09;。如果只记录了子节点&#xff0c;没记录父节点&#xff0c;就失去了一个方向&#xff0c;肯定出错。 例如求2和6之…

Git常见问题:Your branch and ‘xxx/xxx‘ have diverged

报这个错就是因为你和远程库出现分叉了&#xff0c;具体表现是是由于同一个分支有多人修改&#xff0c;多人commit造成的 用户1操作 用户2操作 T1 git co -b brv_1 git co -b brv_1 T2 git add test2.java git commit -m m2 git push T3 git add test1.java git comm…

VR全景博物馆,打造7*24小时的线上参访体验

导语&#xff1a;博物馆作为人们了解历史、文化和艺术的重要场所&#xff0c;现在可以通过VR全景技术来进行展览&#xff0c;让参观者身临其境地感受历史文化的魅力。本文将介绍博物馆VR全景的特点、优势&#xff0c;以及如何使用VR全景技术来丰富博物馆的展览和教育活动。什么…

数据库:Mysql数据库安装及使用

目录 一、数据库介绍 1、基本概念 2、数据库类型 3、版本演变 二、Mysql安装 1、官网下载yum安装 2、手动配置yum安装 三、Mysql基本操作 1、登录与改密 2、检测数据库健康 3、 库的创建与使用 4、数据类型 5、修饰符 6、表的创建与使用 7、分组查询 8、查询排…