第七题:外卖店优先级
题目描述
“饱了么”外卖系统中维护着 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 号) 在优先缓存中。
【评测用例规模与约定】
对于 80% 的评测用例,1≤ N,M,T ≤10000。
对于所有评测用例,1≤ N,M,T ≤100000,1≤ts≤T,1≤id ≤ N。
时间限制:1.0s
内存限制:512.0MB
题目分析
题目代码
import java.util.*;public class a23 {public static int[] res;public static int n;public static int[] aaaa;public static void main(String[] args) {ArrayList<Integer> list;ArrayList<List<Integer>> lists = new ArrayList<>();Scanner scanner = new Scanner(System.in);n = Int();int m = Int();int t = Int();res = new int[t];aaaa = new int[t];for (int i = 0; i < t; i++) {list = new ArrayList<>();int a = Int();int b = Int();list.add(a);list.add(b);lists.add(list);}Collections.sort(lists, new Comparator<List<Integer>>() {@Overridepublic int compare(List<Integer> o1, List<Integer> o2) {(0) - o2.get(0);}});for (int i = 0; i < t; i++) {aaaa[i] = i+1;}for (int i = 0; i < t; i++) {(i).get(0),(i).get(1));}int qq = 0;for (int i = 0; i < t; i++) {if (res[i] > 3)qq++;}System.out.println(qq);}public static int dafual(int x) {if (x == 0)return 0;elsereturn x - 1;}public static void update(int x,int y) {for (int q : aaaa) {int d = q-1;if (q == x) {res[d] += 2 * y;}else {int a = dafual(res[d]);res[d] = a;}}}}
本文发布于:2024-02-02 16:27:23,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170686244145011.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |