首页 > 其他 > 详细

pku_3125_Printer Queue模拟

时间:2014-01-20 19:51:55      阅读:383      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
bubuko.com,布布扣
//题目提示用队列来解题,但是其实不用
//要的是一个数组储存优先值,优先值最大的元素使用后赋值为0,不必用队列来删除它
//循环直到 MyJobPosition 成为优先值最大的元素,使用它,然后退出循环,打印time
//
#include<iostream>
#include<queue>
using namespace std;

const int maxn=105;
int jobs[maxn];

int main (){
    int c;
    cin>>c;
    while(c--){

        int num,mjpos,flag,time=0;
        cin>>num>>mjpos;
        for(int i=0;i<num;i++)
            cin>>jobs[i];

        for(int i=0;;i++){                         

            if(i==num)                              /*如果循环到数组边界了,从头再来*/
                i=0;
            flag=1;
            for(int j=i+1;j!=i;j++)                 
            {
                if(j==num)
                {
                    j=-1;
                    continue;                          /*循环查找是否为优先值最大的元素*/
                  }
                if(jobs[j]>jobs[i])
                {flag=0;break;}
            }

            if(flag)
            {
                time++;
                jobs[i]=0;
                if(i==mjpos)
                    break;
            }
        }
        cout<<time<<endl;
    }
    return 0;
}
bubuko.com,布布扣

题目链接:http://poj.org/problem?id=3125

bubuko.com,布布扣

pku_3125_Printer Queue模拟

原文:http://www.cnblogs.com/neverchanje/p/3527024.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!