• 数据结构 Job


    问题描述

    n 项工作在等待队列中等待处理,编号为 1-n。 每个工作有个优先级 p
    处理机同一时间只能处理一项工作。
    处理机决定接下来处理哪一项工作的方式为:从队首取出一项工作 x,若等
    待队列中没有工作的优先级比 x 的优先级大,那么处理 x,否则将 x 放回队尾,
    继续寻找符合条件的工作。
    现在请你求出编号为 m 的工作是第几个被处理的。


    ★数据输入
    输入第一行为两个正整数 n(1<=n<=100),m(1<=m<=n),n 项工作, 待求的是第
    m 项工作。
    输入第二行 n 个数, 第 i 个数表示标号为 i 的工作的优先级 pi(1<=pi<=9)

    ★数据输出
    输出为一个整数 t,编号为 m 的工作被解决的时间。

    输入示例 输出示例
    1 1
    5
    1


    输入示例 输出示例
    6 2
    1 1 9 2 1 2
    5

    思路

      暴力

    code(未验证)

     1 #include <stdio.h>
     2 #include <iostream>
     3 using namespace std;
     4 #include <deque>
     5 
     6 struct Node
     7 {
     8     Node(int _priority, int _index)
     9         :priority(_priority),index(_index) {}
    10     int priority;
    11     int index;
    12 };
    13 
    14 int main()
    15 {
    16     int i;
    17     int num,index,buf;
    18     deque<Node> q;
    19     scanf("%d %d",&num,&index);
    20     for(i=1; i<=num; i++)
    21     {
    22         scanf("%d",&buf);
    23         q.push_back(Node(buf,i));
    24     }
    25     for( i=1; !q.empty(); )
    26     {
    27         bool flag = true;
    28         for(deque<Node>::iterator it = q.begin(); it!=q.end(); it++)
    29         {
    30             if((*it).priority > q.front().priority)
    31             {
    32                 flag = false;
    33                 break;
    34             }
    35         }
    36         if(flag)
    37         {
    38             if(q.front().index==index)
    39             {
    40                 printf("%d
    ",i);
    41                 break;
    42             }
    43             q.pop_front();
    44             i++;
    45         }
    46         else // false
    47         {
    48             q.push_back(q.front());
    49             q.pop_front();
    50         }
    51     }
    52 
    53 
    54     return 0;
    55 }



  • 相关阅读:
    udp用户数据报协议
    java调用url
    mybatis中的#和$的区别
    sun.misc.BASE64Encoder图片编码,并在页面显示
    oracle查看列数据类型
    MyBatis传入多个参数的问题
    ajax详解
    Comparable和Comparator的区别
    谈谈hashcode和equals的用法
    从为什么String=String谈到StringBuilder和StringBuffer
  • 原文地址:https://www.cnblogs.com/cbattle/p/7672982.html
Copyright © 2020-2023  润新知