zoukankan      html  css  js  c++  java
  • leetcode1882 使用服务器处理任务

    思路:

    维护两个堆分别存储空闲的服务器和正在使用的服务器,遍历任务分别进行处理。均摊时间复杂度n*log(m)(n是任务数量,m是服务器数量)。

    实现:

     1 class Solution
     2 {
     3 public:
     4     vector<int> assignTasks(vector<int>& servers, vector<int>& tasks)
     5     {
     6         int n = servers.size(), m = tasks.size();
     7         using pii = pair<int, int>;
     8         using tup = tuple<int, int, int>;
     9         priority_queue<tup, vector<tup>, greater<tup>> t;
    10         priority_queue<pii, vector<pii>, greater<pii>> q;
    11         for (int i = 0; i < n; i++)
    12         {
    13             t.push({0, servers[i], i});
    14         }
    15         vector<int> res;
    16         for (int i = 0; i < m; i++)
    17         {
    18             while (!t.empty())
    19             {
    20                 auto tmp = t.top();
    21                 int time = get<0>(tmp), weight = get<1>(tmp), server_id = get<2>(tmp);
    22                 if (time > i) break;
    23                 t.pop();
    24                 q.push({weight, server_id});
    25             }
    26             if (q.empty())
    27             {
    28                 auto tmp = t.top(); t.pop();
    29                 int time = get<0>(tmp), weight = get<1>(tmp), server_id = get<2>(tmp);
    30                 res.push_back(server_id);
    31                 t.push({time + tasks[i], weight, server_id});
    32             }
    33             else
    34             {
    35                 auto tmp = q.top(); q.pop();
    36                 int server_id = tmp.second; 
    37                 res.push_back(server_id);
    38                 t.push({i + tasks[i], servers[server_id], server_id});
    39             }
    40         }
    41         return res;
    42     }
    43 };
  • 相关阅读:
    为Delphi配置多套环境
    0425-字符输入流FileReader
    使用 IntraWeb (9)
    使用 IntraWeb (7)
    使用 IntraWeb (6)
    使用 IntraWeb (5)
    使用 IntraWeb (4)
    使用 IntraWeb (3)
    使用 IntraWeb (2)
    使用 IntraWeb (1)
  • 原文地址:https://www.cnblogs.com/wangyiming/p/15581614.html
Copyright © 2011-2022 走看看