当前位置: 首页 > news >正文

常州网站推广招聘注册推广赚钱一个10元

常州网站推广招聘,注册推广赚钱一个10元,网站开发具体做什么的,最好用的磁力搜索器任务分配问题,有n个任务,每个任务有个达到时间。将这些任务分配给m个处理器,进行处理。每个处理器的处理时间不一样。处理器的任务列表有最大任务数限制。 分配任务的策略是:当前待分配的任务的处理时刻最小。如果处理时刻相同&am…

任务分配问题,有n个任务,每个任务有个达到时间。将这些任务分配给m个处理器,进行处理。每个处理器的处理时间不一样。处理器的任务列表有最大任务数限制。
分配任务的策略是:当前待分配的任务的处理时刻最小。如果处理时刻相同,处理器id小的优先。
假设从时刻0开始分配任务和处理任务。在某一时刻,要求处理器先标记任务的完成状态,再接受新的任务。
问所有问题处理完毕后的时刻是多少?

#include <iostream>
#include <vector>
#include <map>
#include <set>
#include <functional>
#include <string>
#include <queue>
using namespace std;class Solution
{
public:int Dispatch(vector<int> timeUnit, vector<int> arriveTimeList, int queueLen){int n = timeUnit.size();this->timeUnit = timeUnit;this->queueLen = queueLen;taskTime.resize(n, 0);taskCount.resize(n, 0);auto cmp = [&] (int x, int y) -> bool {if (taskCount[x] == queueLen && taskCount[y] == queueLen) {return x > y;}if (taskCount[x] == queueLen) {return true;}if (taskCount[y] == queueLen) {return false;}int time1 = taskTime[x] + timeUnit[x] * taskCount[x];int time2 = taskTime[y] + timeUnit[y] * taskCount[y];if (time1 == time2) {return x > y;}return time1 > time2;};int j = 0;int curTime = 0;for (; ; curTime++) {priority_queue<int, vector<int>, function<bool(int,int)>> q(cmp);// 出队for (int i = 0; i < n; i++) {if (taskCount[i] == 0) {q.push(i);continue;}int cnt = (curTime - taskTime[i]) / timeUnit[i];taskCount[i] -= cnt;if (taskCount[i] < 0) {taskCount[i] = 0;taskTime[i] = 0;} else {taskTime[i] += cnt * timeUnit[i];}q.push(i);}int task = q.top();// 入队,直到不能再加了while (j < arriveTimeList.size() && arriveTimeList[j] <= curTime && taskCount[task] < queueLen) {q.pop();taskCount[task]++;if (taskCount[task] == 1) {taskTime[task] = curTime;}j++;q.push(task);task = q.top();}if (j == arriveTimeList.size()) {break;}}int ans = 0;for (int i = 0; i < n; i++) {ans = max(ans, taskTime[i] + taskCount[i] * timeUnit[i]);}return ans;}
private:vector<int> taskTime;vector<int> taskCount;vector<int> timeUnit;int queueLen;
};int main(int argc, char *argv[])
{vector<int> timeUnit = {1, 2, 3, 4, 5};vector<int> arriveTimeList = {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 7};int rightAns = 5;Solution s;int ans = s.Dispatch(timeUnit, arriveTimeList, 3);cout << "ans: " << ans << endl;return 0;
}
http://www.khdw.cn/news/38338.html

相关文章:

  • 萝岗网站开发营销外包
  • 网站建设需要经历什么步骤软文批发网
  • 潍坊网站制作价格各大网站提交入口
  • 百度搜索公司网站展现图片广州白云区今天的消息
  • wordpress调用新版媒体库网站推广优化怎样
  • 家居企业网站建设流程免费网站站长查询
  • 行业协会网站模板哪里有免费的网站推广软件
  • 快速搭建网站信息库seo线下培训课程
  • 建立网站需要多少人环球网广东疫情最新消息
  • 大坪网站建设游戏优化大师下载安装
  • 邵阳建设银行网站是多少营销推广费用预算表
  • 昆明网站seo技术厂家网络做推广公司
  • 重庆建设教育协会网站首页手机网页制作app
  • 企业网站建设的核心是爱站seo
  • 毕设做网站答辩稿百度关键词搜索量查询
  • 网站关键词百度首页消失个人免费建站软件
  • 烟台网站制作网站武汉最新疫情
  • 网站界面设计规划广州网站运营
  • 武汉建设网站站长工具seo综合查询 分析
  • 网站的备案号在哪百度快照什么意思
  • 网站制作用什么软件如何申请域名
  • bootstrap建设淘宝网站广州网络营销公司
  • 网站备案网站建设方案书百度推广客户端mac版
  • 一个网站做三页是什么意思网站建设报价明细表
  • 兰州疫情引起民愤陕西seo推广
  • php大型网站开发吸引人气的营销方案
  • 北仑网站建设案例宁波专业seo服务
  • 企业网站设计网广丰网站seo
  • 网站新媒体推广怎么做淘宝关键词优化软件
  • 阜宁网站开发seo优化有百度系和什么