蓝桥杯2019初赛 外卖店优先级

因为疫情的原因,4月份的蓝桥杯推迟到了现在,其实一直以来也没有准备这个比赛,只有一两天时间了,刷几道真题抱一下佛脚。

下面开始说正事:

这道题如果思路不对的话,可能做起来非常痛苦。我看了一些网上其他同学的解答,其他方法代码很多,我也没仔细看。不过其他方法应该是直接模拟整个缓存里面的细节情况,所以代码非常繁琐,这里给大家提供一种比较简单的解题方法,思路在代码里面,代码很少,思路也很好理解。

由于本人水平有限,代码有不足的地方欢迎指正,欢迎大家评论交流共同进步!

题目:

【问题描述】
“饱了么”外卖系统中维护着 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
【样例解释】
6 时刻时,1 号店优先级降到 3,被移除出优先缓存;2 号店优先级升到 6, 加入优先缓存。所以是有 1 家店 (2 号) 在优先缓存中。

解答:

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();int t = sc.nextInt();//定义brr[n][t]二维数组,表示第n个店的t时刻有多少订单int[][] brr = new int[n+1][t+1];int a =0;int b =0;for(int i=0;i<m;i++) {a = sc.nextInt();//第a时刻b = sc.nextInt();//第b个店brr[b][a]+=1;//在b店的a时刻的订单数}sc.close();int ans = 0;//用来记录这个店是否在缓存中的数量,即最终答案for(int i=1;i<n+1;i++) {int prior =0;//用于判断第i个店的优先级boolean position = false;//用于判断第i个店第j时刻是在缓存里还是缓存外for(int j=1;j<t+1;j++) {if(brr[i][j]==0) {//当第i个店的j时刻没有订单时,优先级要减一,同时最小为0prior-=1;prior = prior>=0?prior:0;}else {prior +=2*brr[i][j];//有订单,优先级则乘2}if(prior>5)position=true;//若此时优先级大于5,则在缓存里面if(prior<=3)position=false;//若此时优先级小于等于3,则肯定在缓存外面}if(position)ans++;//把第i个店的所以时间点都判断完,最终看这个店的位置,缓存里则ans加一}System.out.println(ans);}
}

蓝桥杯2019初赛 外卖店优先级 java相关推荐

  1. [蓝桥杯2019初赛]外卖店优先级

    传送门 输入: 2 6 6 1 1 5 2 3 1 6 2 2 1 6 2 输出: 1 思路:模拟 每个店去开个数组,给订单时间排序,然后模拟进出优先缓存的过程即可. ps:中间过程优先级可能会≤3 ...

  2. 蓝桥杯真题 外卖店优先级(2019年省赛)

    试题 G: 外卖店优先级 时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分 [问题描述] "饱了么"外卖系统中维护着 N 家外卖店,编号 1 ∼ N.每家外卖店 ...

  3. [蓝桥杯2019初赛]立方和

    [蓝桥杯2019初赛]立方和 无脑暴力 #include<bits/stdc++.h> using namespace std; typedef long long ll; ll fast ...

  4. 蓝桥杯题目练习 提升篇 [蓝桥杯2019初赛]迷宫

    [蓝桥杯2019初赛]迷宫 题目描述 下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可 以通行的地方. 010000 000100 001001 110000 迷宫的入口为左上角, ...

  5. 1241. 外卖店优先级 Java题解 (模拟)【第十届蓝桥杯省赛C++A/C组,JAVA A/B/C组】

    输入样例: 2 6 6 1 1 5 2 3 1 6 2 2 1 6 2 输出样例: 1 样例解释 66 时刻时,11 号店优先级降到 33,被移除出优先缓存:22 号店优先级升到 66,加入优先缓存. ...

  6. [蓝桥杯2019初赛]迷宫-DFS、BFS两种方法

    迷宫问题的最短路,加最小字典序 迷宫文件maze.txt传送门 作者写的2019年B组蓝桥杯解集 . . . DFS的版本 #include<iostream> #include<c ...

  7. [蓝桥杯2019初赛]质数-质数筛or 水题

    法一: 代码如下: #include <iostream> #include <cmath> using namespace std;bool check(int x) {fo ...

  8. [蓝桥杯2019初赛]数的分解-枚举

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

  9. [蓝桥杯2019初赛]年号字串-数论+模拟

    题目描述 小明用字母A 对应数字1,B 对应2,以此类推,用Z 对应26.对于27以上的数字 小明用两位或更长位的字符串来对应,例如AA 对应27,AB 对应28,AZ 对应52,LQ 对应329. ...

最新文章

  1. 规格选项表管理之删除规格选项表数据
  2. 基于windows 2012部署oracle 12.1.0.2 rac历险记
  3. 鱼油账号记录程序 - 零基础入门学习Delphi38
  4. Linux下查看/修改系统时区、时间
  5. nginx并发模型与traffic_server并发模型简单比较
  6. (0095)iOS开发之本地文件预览的三种方法(3)
  7. python 开发版-高性能、低成本、支持MicroPython开发板有哪些?
  8. Python 闭包详解
  9. linux去掉u盘写保护,最全面win10系统下u盘写保护怎么去掉
  10. 部署WEB应用到云服务器时,出现的部分网页不能显示或者连接数据库问题。
  11. deepin系统转为windows_windows系统下安装深度系统deepin
  12. C# EF6 更新对象
  13. 【代码优化】私有构造器使用及对象创建优化
  14. python抠图_最简单的Python抠图图文教程
  15. 精品H5小游戏源码-免费下载
  16. 基础——内部RC振荡电路、外部晶振、RCC、RTC
  17. 测试手机ram速度软件,8GB RAM极限是什么?我们拿两款手机测试了一下
  18. Oracle 10g For Windows 10.1.0和 Oracle 10g For Linux 10.1.0.3下载地址
  19. 向六种植物学习创业的真谛
  20. Ceph分布式存储知识总结

热门文章

  1. 06.AOV网和图的拓扑排序
  2. 全志D1-H芯片 如何移植 rtl8821cu wifi 驱动到 Linux-5.4内核?
  3. v63.04 鸿蒙内核源码分析(文件系统) | 用图书管理说文件系统 | 百篇博客分析OpenHarmony源码
  4. Slidev:用Markdown的方式来做PPT
  5. RxJava2.X 源码分析 一
  6. 11. 系统限制和选项
  7. 使用 Elixir / OTP 构建多媒体 E2E 处理平台
  8. 墨者学院-access数据库
  9. SSR服务器端渲染(Next.js总结和豆瓣电影项目)
  10. hibernate 一对多 多对一 关系表 增删改查大礼包ps二级查也有