电子商务网站建设的开发方案wordpress 打开速度
2026/2/5 20:02:57 网站建设 项目流程
电子商务网站建设的开发方案,wordpress 打开速度,中国工程监理人才网,网站备案流程多少钱2402: 会议室Ⅲ思路#xff1a;双堆模拟priority_queue按照时间顺序模拟开会过程。对于会议 [start,end)#xff0c;我们需要知道#xff1a;在 start 时刻空闲的会议室中#xff0c;编号最小的会议室。可以用一个最小堆 idle 维护空闲会议室的编号。如果没有空闲的会议室呢…2402: 会议室Ⅲ思路双堆模拟priority_queue按照时间顺序模拟开会过程。对于会议 [start,end)我们需要知道在 start 时刻空闲的会议室中编号最小的会议室。可以用一个最小堆 idle 维护空闲会议室的编号。如果没有空闲的会议室呢我们需要找最早结束的会议室。可以用一个最小堆 inUse 维护使用中的会议室的结束时间和编号。这两类会议室是互补关系伴随着会议的开始和结束会议室在这两类中来回倒首先从 inUse 中去掉结束时间小于等于 start的所有会议室将其编号添加到 idle 中。使用结束然后分类讨论如果此时有空闲的会议室那么从 idle 中弹出编号最小的会议室和 end 一起添加到 inUse 中。否则从 inUse 中弹出一个最早结束的会议室若有多个同时结束弹出编号最小的会议室顺延会议的结束时间为 ende−start。在上述模拟的过程中每使用一个编号为 i 的会议室就把 i 的出现次数加一。返回举办最多次会议的房间编号。如果存在多个房间满足此条件则返回编号最小的房间。注意题目保证所有会议的开始时间互不相同。class Solution { public: int mostBooked(int n, vectorvectorint meetings) { ranges::sort(meetings,{},[](auto m){return m[0];}); //小根堆堆顶最小 priority_queueint,vectorint,greater idle; //会议室编号 for(int i0;in;i) idle.push(i); //{结束时间会议室编号} priority_queuepairlong long,int,vectorpairlong long,int,greater inUse; vectorint cnt(n); //使用次数 for(auto m:meetings){ long long startm[0],endm[1]; //在start时刻空出来的会议室 while(!inUse.empty() inUse.top().firststart){ //使用结束 idle.push(inUse.top().second); inUse.pop(); } int i; if(!idle.empty()){ //有空闲的会议室 iidle.top(); idle.pop(); } else{ //没有空闲的会议室 auto[e,room]inUse.top(); //弹出最早结束的会议室若有多个同时结束弹出编号最小的会议室 iroom; inUse.pop(); ende-start; //延期会议的持续时间和原会议持续时间相同 } inUse.emplace(end,i); cnt[i]; } int ans0; for(int i0;in;i){ if(cnt[i]cnt[ans]) ansi; } return ans; } };

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询