shī


私信TA

用户名:uq_99161725958

访问量:1665

签 名:

等  级
排  名 25417
经  验 595
参赛次数 0
文章发表 4
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

本题感觉就是阅读理解题,不算难题,只要认真点就行了。

注意事项:

①外卖店有订单时,优先级不增反减。

②外卖店优先级超过5时,才能进入缓冲队列。小于等于3时被踢出。

参考代码:

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Main7 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int m = scan.nextInt();
		int t = scan.nextInt();
		int[] p = new int[n + 1];
		Order[] orders = new Order[m];
		boolean[] cache = new boolean[n + 1];
		boolean[] haveOrNot = new boolean[n + 1];
		for(int i = 0 ; i < m ; i++) {
			int ts = scan.nextInt();
			int id = scan.nextInt();
			orders[i] = new Order(ts, id);
		}
		Arrays.sort(orders, new Comparator<Order>() {
			@Override
			public int compare(Order arg0, Order arg1) {
				return arg0.ts - arg1.ts;
			}
		});
		
		
		int k = 0;
		for(int i = 1 ; i <= t ; i++) {
			for(int j = 1 ; j <= n ; j++) {
				haveOrNot[j] = false;
			}
			
			for(int j = k ; j < m ; j++) {
				if(orders[j].ts > i) {
					k = j;
					break;
				}
				if(orders[j].ts == i) {
					p[orders[j].id] += 2;
					haveOrNot[orders[j].id] = true;
				}
			}
			
			for(int j = 1 ; j <= n ; j++) {
				if(p[j] > 0 && haveOrNot[j] == false) {
					p[j]--;
				}
				if(p[j] > 5) {
					cache[j] = true;
				}
				if(p[j] <= 3) {
					cache[j] = false;
				}
			}
		}
		
		int count = 0;
		for(int i = 1 ; i <= n ; i++) {
			if(cache[i] == true) {
				count++;
			}
		}
		
		System.out.println(count);
	}
}

class Order {
	public int ts;
	public int id;
	
	public Order(int ts, int id) {
		super();
		this.ts = ts;
		this.id = id;
	}
}


 

0.0分

6 人评分

  评论区

  • «
  • »