2025/12/30 22:26:27
网站建设
项目流程
郑州定制网站开发,承德 网站建设 网络推广 网页设计,android 做分享的网站,开发门户网站报价#x1f357; 炸鸡排问题#xff08;连续时间并行调度#xff09; 一、题目本质
有 n 个任务#xff08;鸡排#xff09;#xff0c;第 i 个任务需要 t[i] 的总处理时间#xff0c;同时最多#xff08;且必须#xff09;处理 k 个任务#xff0c;任务可随时切换 炸鸡排问题连续时间并行调度一、题目本质有 n 个任务鸡排第 i 个任务需要 t[i] 的总处理时间同时最多且必须处理 k 个任务任务可随时切换但完成的任务不能再占用资源求最多能持续运行多长时间 本质是连续时间 必须恰好 k 个并行任务的调度问题二、关键建模思想把炸锅看成一个“资源池”每 1 秒炸锅消耗 k 单位工作量第 i 个鸡排最多能提供 t[i] 单位工作量在 T 秒内第 i 个鸡排最多贡献min(t[i], T)三、核心可行性条件最重要炸锅能持续 T 秒 当且仅当∑min(ai,T)≥kT含义解释左边所有鸡排在 T 秒内最多能提供的炸制时间右边炸锅在 T 秒内必须消耗的炸制时间四、通用结论可迁移所有1.连续时间2.多任务可切换3.必须同时运行 k 个任务都可以尝试∑min(ai,T)≥kT进行二分判断五、题目PG炸鸡排浮点数二分当答案为浮点数时二分终止条件不再是leftright而是用一个较大的二分次数来限制。intN100;while(N--){doubleT(leftright)*1.0/2;// 验证doublecnt0;for(doubletime:t){cntmin(time,T);}if(cntk*T){leftT;}else{rightT;}}LeetCode同时运行N台电脑答案为整型的开区间二分判断条件为left1right从而保证区间内一定包含整数否则返回leftlonglongmaxRunTime(intn,vectorintbatteries){longlongleft0;longlongright0;for(intt:batteries){rightt;}right/n;right1;while(left1right){longlongmid(leftright)/2;longlongcnt0;for(longlongt:batteries){cntmin(t,mid);}if(cntmid*n){leftmid;}else{rightmid;}}returnleft;}