zoukankan      html  css  js  c++  java
  • UVA 1203

    UVA 1203 - Argus

    题目链接

    题意:给定一些注冊命令。表示每隔时间t,运行一次编号num的指令。注冊命令结束后。给定k。输出前k个运行顺序

    思路:用优先队列去搞,任务时间作为优先级。每次一个任务出队后,在把它下次运行作为一个新任务入队就可以

    代码:

    #include <cstdio>
    #include <cstring>
    #include <queue>
    using namespace std;
    
    char str[10];
    
    struct Task {
        int t, q, p;
        Task(){}
        Task(int t, int q, int p) {
    	this->t = t;
    	this->q = q;
    	this->p = p;
        }
        bool operator < (const Task& a) const {
    	if (t != a.t) return t > a.t;
    	return q > a.q;
        }
    };
    
    priority_queue<Task> Q;
    
    int main() {
        int a, b;
        while (~scanf("%s", str) && str[0] != '#') {
    	scanf("%d%d", &a, &b);
    	Q.push(Task(b, a, b));
        }
        int k;
        scanf("%d", &k);
        while (k--) {
    	Task now = Q.top();
    	Q.pop();
    	printf("%d
    ", now.q);
    	now.t += now.p;
    	Q.push(now);
        }
        return 0;
    }


  • 相关阅读:
    练习三
    练习四
    练习二
    软件生命周期
    练习一 第六题
    练习一 第五题
    练习一 第四题
    练习一 第三题
    练习一 第二题
    AngularJs模块
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/6756465.html
Copyright © 2011-2022 走看看