【问题描述】 “饱了么”外卖系统中维护着 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 号) 在优先缓存中。

把要求的时间点ti前的情况放进去二维数组,再去ti判断是否在队列。

public class Main {

    public static void main(String args[]) {

        int t = 0, w = 0;
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int[][] state = new int[c+1][a+1];
// long start = System.currentTimeMillis(); //要测试的程序或方法 个人用来检测运行时间的。 for(int i = 0; i <= c; i++)
for(int j = 0; j <= a; j++)
state[i][j] = -1;
// for(int i = 0; i <= a; i++) state[0][i] = 0;
Arrays.fill(state[0], 0); //---------Java所谓的的二维数组,只有a{{},{}},把第一行填充0,用于接下去的加
for(int i = 0; i < b; i++) {
t = sc.nextInt();
w = sc.nextInt();
if(t > c) continue;
if(state[t][w] == -1) state[t][w] = 0;
state[t][w] += 2;
} for(int i = 1; i <= a; i++) {
for(int j = 1; j <= c; j++) {
state[j][i] = state[j-1][i] + state[j][i];
if(state[j][i] < 0) state[j][i] = 0; }
}
// -----------下面开始判断-------------
// ArrayList<Integer> jilu = new ArrayList<Integer>();
int sign = 0, index = 0;
int num = 0;
for(int i = 1; i <= a; i++) {
sign = state[c][i];
index = c;
while(sign == 4 || sign == 5) {
sign = state[--index][i];
}
if(sign > 5) {
num++;
}
}
System.out.println(num); // long end = System.currentTimeMillis();
// System.out.println("程序运行时间:"+(end-start)+"ms"); }
}

最新文章

  1. python-time 模块
  2. 【jQuery】百分比自适应屏幕轮播图特效
  3. XStream、JAXB 日期(Date)、数字(Number)格式化输出xml
  4. cocos2d-x的helloLua例子函数名定义误导初学者
  5. LeetCode144:Binary Tree Preorder Traversal
  6. mysql 中创建存储过程
  7. D - 二叉树遍历(推荐)
  8. vue 自定义组件销毁
  9. treeMap 基于JDK 1.8的学习
  10. SpringBoot2 配置
  11. 17、uwp 打包失败记录
  12. N76E003之ISP
  13. 原生态的javascript的n种技巧(我从别人的博客中拷贝过来的,方便以后查阅)
  14. python的动态性和_slot_
  15. 带limit的hivesql排序
  16. Vue父组件与子组件传递事件/调用事件
  17. React - React Developer Tools开发者工具的安装与使用(Chrome调试插件)
  18. Ubuntu 18.04 下 emscripten SDK 的安装
  19. CF547D Mike and Fish
  20. C# 错误和异常

热门文章

  1. python基础(二)---第一个程序
  2. 进程,内存,管理 ps,pstree,top,free,vmstat,iftop,lsof,查看网速
  3. 3_08_MSSQL课程_Ado.Net_子查询
  4. SpringBoot启动使用elasticsearch启动异常:Received message from unsupported version:[2.0.0] minimal compatible
  5. linux动态监控dstat&amp;&amp;glances&amp;&amp;psutil&amp;&amp;bottle
  6. msbuild发布web应用程序
  7. Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool2/impl/GenericObjectPoolConfig
  8. 创业复盘实战营总结----HHR计划----创业课
  9. 夯实Java基础(二十)——JAVA正则表达式
  10. Java中四种遍历Map对象的方法