UVA12100:Printer Queue(打印队列)

原创 2017年02月02日 17:04:23

作者:xq的acm之路

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3252

题目大意:现在有一个打印队列,里面的任务是无序的,每个任务有一个优先级,打印机会从第一个任务开始执行,如果当前任务的优先级是队列中最大的,那么就打印,否则就将该任务放置到队末。每次打印消耗一分钟的时间,求该序列中的任务分别在什么时候被打印。

思路:队列模拟就行,注意结束的条件。

代码如下:

#include <iostream>
#include <queue>
#include <algorithm>
#include <vector>

using namespace std;

queue<int>q;
int main()
{
    int n;
    int b[1010];
    cin>>n;
    while(n--)
    {
        int t,k,l;
        cin>>t>>k;
        for(int i=0;i<t;i++)
        {
            cin>>l;
            q.push(l);
            b[i]=l;
        }
        sort(b,b+t);
        int zhi=k,flag=t-1,ans=1;      //zhi就是指向队列的指针
        while(1)
        {
            if(zhi<0)
                zhi=q.size()-1;
            if(q.front()==b[flag])
            {
                if(zhi==0)
                    break;
                q.pop();
                ans++;
                flag--;
                zhi--;
            }
            else
            {
                zhi--;
                int m=q.front();
                q.pop();
                q.push(m);
            }
        }
        cout<<ans<<endl;
        while(!q.empty())      //一定不要忘记把队列清空!!!
            q.pop();
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

ITU601与ITU656

原文地址 http://blog.csdn.net/zhandoushi1982/archive/2009/12/15/5013868.aspx ITU601与ITU656都具有8根数据线并行传输数据...

关于“打印队列 Printer Queue, ACM/ICPC NWERC 2006, UVa 12100)"的讨论

打印队列有两个属性,一个是优先级一个是位置,可以写一个结构体存储这些信息再利用queue的特性完成本题 #include #include #include using namespace std;...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

UVa12100

/* 关键是理解题意,如果当前取出的任务不是优先级最高的,那么就把该任务放在队列最后 注意,此时是不会打印优先级最高的任务,也不会消耗时间 */ #include #include #in...

UVA 12100

题意:有一个打印机,有一些任务在排着队打印,每个任务都有优先级。打印时,每次取出队列第一个任务,如果它的优先级不是当前队列中最高的,就会被放到队尾,否则就打印出来。输出初始队列的第m个任务的打印时间,...

UVA12100 Printer Queue 【双端队列】

题目链接:https://vjudge.net/problem/UVA-12100 题意: 有 n 个任务,每个任务都有一个优先级,优先级越高则越急。每次从队列首部取出一个任务J。按照如下...

习题5-7 打印队列 UVa12100

1.题目描述: 2.解题思路

UVA12100-打印队列

题目大意: 现在有一个打印队列,里面的任务是无序的,每个任务有一个权值,打印机会从第一个任务开始执行,如果当前任务的权值是队列中最大的,那么就打印,否则就将该任务放置到队末。每次打印消耗一定的时间,...

UVa: 12100 - Printer Queue

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=...

uva12100解题报告

水题留念 一个队列模拟进出操作,一个优先队列保存优先级,模拟过程输出结果 #include #include #include #include using namespace std; const...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)