全部评论
每次遇到玩具,就把玩具的时间加入小根堆,遇到猫就从小根堆里拿一个时间,如果时间比直接摸的时间小就用堆顶时间,否则就直接摸。
直接模拟过程即可
优先队列
import java.util.*; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int T = sc.nextInt(); int[] toy=new int[k]; for (int i = 0; i < k; i++) { toy[i]= sc.nextInt(); } int res=0; PriorityQueue<Integer> pq=new PriorityQueue<>(); for (int i = 0; i < n; i++) { int x=sc.nextInt(); if(pq.size()==0&&x==0){ res+=T; }else if(x>0&&x-1<k&&toy[x-1]<T){//key point pq.add(toy[x-1]); }else if(x==0){ res+=pq.poll(); } } System.out.println(res); } }
最小堆就行
相关推荐
昨天 00:35
南京信息工程大学 Java 剑与她皆失:12月你不用再对我宣战,我已投降,我已经闻到你的恶意了。1234567891011月我都既往不咎,我只求今年最后一个月可以放过我,不要什么狗屁爱情,一个大厂offer就可以了,12月我求求你放过我。
点赞 评论 收藏
分享
10-22 09:27
莆田学院 软件测试 点赞 评论 收藏
分享