时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分

【问题描述】 “饱了么”外卖系统中维护着 N 家外卖店,编号 1 ∼ N。每家外卖店都有 一个优先级,初始时 (0 时刻) 优先级都为 0。 每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减 到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。 如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果 优先级小于等于 3,则会被清除出优先缓存。 给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优 先缓存中。

【输入格式】
第一行包含 3 个整数 N、M 和 T。 以下 M 行每行包含两个整数 ts 和 id,表示 ts 时刻编号 id 的外卖店收到 一个订单。

【输出格式】
输出一个整数代表答案。

【样例输入】
2 6 6
1 1
5 2
3 1
6 2
2 1
6 2

【样例输出】
1

代码如下:

import java.util.*;public class 外卖优先级 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();int M = scanner.nextInt();int T = scanner.nextInt();int[][] ints_time_number = new int[M][T];    //存放时刻和店号的数组int result = 0; //最后,在优先缓存区里的店的个数HashMap<Integer,Integer> hashMap = new HashMap<>();for (int i = 1; i <= N; i++) {hashMap.put(i,0);}Set<Integer> set = hashMap.keySet();for (int j = 0; j < M; j++) {ints_time_number[j][0] = scanner.nextInt();   //时刻ints_time_number[j][1] = scanner.nextInt(); //店号}for(int i=0; i<M-1; i++){for(int j=0; j<M-1-i; j++){if(ints_time_number[j][0] > ints_time_number[j+1][0]){int temp = ints_time_number[j][0];ints_time_number[j][0] = ints_time_number[j+1][0];ints_time_number[j+1][0] = temp;}}}ArrayList<Integer> arrayList = new ArrayList<>();for (int i = 0; i < T; i++) {arrayList.add(i+1);}for (Integer k : set) {for (int i = 0; i < M; i++) {if (ints_time_number[i][1] == k) {      //看店号hashMap.put(k, hashMap.get(k) + 2);} else {hashMap.put(k, hashMap.get(k) - 1);if (hashMap.get(k) < 0) {hashMap.put(k, 0);}}}}Set<Integer> set1 = new HashSet<>();for (int i = 0; i < arrayList.size(); i++) {set1.add(ints_time_number[i][0]);}//比较 去重后的 与 不去重的 个数,求差值int no_exist = arrayList.size() - set1.size();for (int i = 0; i < no_exist; i++) {for (Integer n:set) {hashMap.put(n,hashMap.get(n)-1);if (hashMap.get(n) < 0) {hashMap.put(n,0);}}}for (Integer integer: set) {if (hashMap.get(integer) > 5) {result ++;}}System.out.println(result);}
}

重点:
一、将时间由小到大排序了后,即可得到时间排序后的对应的店家号码,遍历号码,一次与键比较,如果相同,则优先级加2,如果不相同就减1。
二、针对有的时间点没有订单,思想如下:
时间点: 1 2 3 5 6 6
arraylist:1 2 3 4 5 6
将时间点放进set中去重,可得知重复元素的个数是多少,也就是有多少个时间点没有订单,则需要将每个店家的优先级都减1.

第十届蓝桥杯大赛软件类省赛Java大学B组 试题 G: 外卖店优先级相关推荐

  1. 第十届蓝桥杯大赛软件类省赛 JAVA 大学 A 组

    迷宫 本题总分:10 分 [问题描述] 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方. 010000 000100 001001 110000 迷宫的入口为左 ...

  2. 2019第十届蓝桥杯大赛软件类省赛C++ C组真题题解

    ============================== 2019-2021蓝桥杯C++ C组真题题解: 2019第十届蓝桥杯大赛软件类省赛C++ C组真题题解 2020第十一届蓝桥杯大赛软件类省 ...

  3. 2019第十届蓝桥杯大赛软件类省赛C++ B组真题题解

    ========================================== 2019-2021蓝桥杯C++ B组真题题解: 2019第十届蓝桥杯大赛软件类省赛C++ B组真题题解 2020第 ...

  4. 蓝桥杯软件类比赛java,第十届蓝桥杯大赛软件类省赛

    第十届蓝桥杯大赛软件类省赛 这些题官网还没有解答的,我主要参考了b站UP主大雪菜的解法(绝大部分题先自己做了一遍),当然也网上查了一些解答,但发现现在网上的一些解法并不正确,希望可以给大家一个参考. ...

  5. 2019 第十届蓝桥杯大赛软件类省赛 C/C++ 大学 A 组 【部分题解】

    声明: 这些的答案不是官方答案,都是我自己做的,仅供参考.一起加油 试题 A: 平方和 本题总分:5′5 '5′ [问题描述] 小明对数位中含有 2.0.1.92. 0. 1. 92.0.1.9 的数 ...

  6. 第十届蓝桥杯大赛软件类省赛

    其他组见以下链接. 第十届蓝桥杯所有的题 一.研究生组 试题 A: 立方和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1.2 ...

  7. 2、数的分解 - 2019年第十届蓝桥杯大赛软件类省赛

    问题 [问题描述] 把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包 含数字 2 和 4,一共有多少种不同的分解方法? 注意交换 3 个整数的顺序被视为同一种方法,例如 10 ...

  8. 1、数列求值 - 2019年第十届蓝桥杯大赛软件类省赛

    问题 [问题描述] 给定数列 1, 1, 1, 3, 5, 9, 17, -,从第 4 项开始,每项都是前 3 项的和.求第 20190324项的最后 4 位数字. #include <iost ...

  9. 第十届蓝桥杯大赛软件类省赛C++研究生组

    这比赛题目 A 立方和(5,√) B 字串数字(5, √) C 质数(10, √) D 最短路(10, √) E RSA解密(15) F Fibonacci数列与黄金分割(15, √) G 扫地机器人 ...

最新文章

  1. java 读utf-8 xml_〖JAVA经验〗JDom输出UTF-8的XML完美解决方法
  2. 封装时间转换工具类_利用swig封装C++的dll为C#方便使用
  3. Mysql InnoDB Plugin安装 install
  4. 关闭浏览器 清空session_跨境网络小知识之Session
  5. 关于K-Means算法
  6. 大数据_Hbase-API访问_Java操作Hbase_判断表是否存在---Hbase工作笔记0012
  7. select清除原来样式
  8. Cocos-2d 关于SwallowTouch,进一步解释触摸事件分发机制
  9. 3dmax导入REVIT
  10. PDMS二次开发(五)——小试牛刀之细节整理和收尾
  11. pp助手苹果版本_这可能是最简单的下载APP历史版本方法(支持iOS和安卓)
  12. 金盾2016(正阳版)播放器机器码替换
  13. 学画画软件app推荐_一步一步教画画的app有哪些_2018手机画画软件哪个好呢_96u手游网...
  14. Excel如何让单元数据显示单位又能参与运算?
  15. paypal的rest api接入
  16. namesilo修改域名服务器,Namesilo, godaddy和万网域名修改NS的方法
  17. Modern UI for WPF的使用
  18. 如何将图片文字转换成word
  19. 博学笃志,切问近思,此八字,是收放心的工夫。 神闲气静,智深勇沉,此八字,是干大事的本领...
  20. NLPCC2019 - User-Characteristic Enhanced Model for Fake News Detection in Social Media

热门文章

  1. MEDSAMreadme
  2. 逻辑漏洞挖掘——任意账号密码(用户名/前端验证/激活验证/批量注册)
  3. java学习教程基础入门及提高,22年最新
  4. scrapyd部署分布式爬虫
  5. 【100%通过率】华为OD机试真题 C 实现【完美走位】【2022.11 Q4新题】
  6. Three.js——向量操作函数
  7. 165体重_女生标准体重表”来了!身高165cm,完美体重居然是这样!
  8. Wio RP2040无线WiFi迷你开发板Arduino IDE开发环境安装与使用基础
  9. 一把油纸伞惊艳米兰城,还成淘宝神店镇店之宝
  10. 【PostgreSQL】WITH RECURSIVE递归查询语句