• UVa 12100


    描述 : 输入打印任务及关注的任务在输入中的位置,从0开始。如果当前任务的优先级不是最高的则把当前任务加在队列最后。计算当前任务打印完成的时刻。每个任务的打印都是需要1分钟。

    思路 : 类似于优先级队列,但是不一样。设置一个数组记录优先级并由大到小排序,然后模拟执行。

    代码 :

    import java.util.*;
    
    public class Main12100 {
    
    	public static void main(String[] args) {
    		Scanner scan = new Scanner(System.in);
    		int t = scan.nextInt();
    		while(t-- > 0) {
    			Queue<work> q = new LinkedList<work>();
    			int n = scan.nextInt();
    			int f = scan.nextInt();
    			work[] w = new work[n];
    			for(int i=0; i<n; i++) {
    				int p = scan.nextInt();
    				if(i == f) {
    					w[i] = new work(p, -1);
    					q.offer(w[i]);
    				}else {
    					w[i] = new work(p, i);
    					q.offer(w[i]);
    				}
    			}
    			for(int j=0; j<n-1; j++) {
    				for(int i=0; i<n-1-j; i++) {
    					if(w[i].pori < w[i+1].pori) {
    						work k = w[i];
    						w[i] = w[i+1];
    						w[i+1] = k;
    					}
    				}
    			}
    			int cnt = 0;
    			while(true) {
    				work temp = q.peek();
    				//if(temp.flag == -1)break;
    				if(temp.pori == w[cnt].pori) {
    					if(temp.flag == -1)break;
    					else {
    					    q.poll();
    					    cnt ++;
    					}
    				}else {
    					q.offer(q.poll());
    				}
    			}
    			cnt ++;
    			System.out.println(cnt);
    		}
    	}
    }
    class work {
    	public int pori;
    	public int flag;
    	public work(int p, int f) {
    		pori = p;
    		flag = f;
    	}
    }


     

  • 相关阅读:
    docker 的使用
    WEB应用支持RESTFUL风格方法
    tomcat7 安装 windows 服务
    获取POM.XML依赖的JAR包
    集成 dubbo 微服务
    linux 修改yum 为阿里云源
    poj3904
    2013 ACM/ICPC 长春网络赛E题
    2013 ACM/ICPC 长春网络赛F题
    2013 ACM/ICPC 长沙网络赛J题
  • 原文地址:https://www.cnblogs.com/wxisme/p/4363733.html
Copyright © 2020-2023  润新知