好题。算法不难,实现巧妙
堆(按结束时间排序)
链表 表示已经占据的空间的开始点和长度 用set表示了
队列 等待分配的
代码
#include<iostream>
#include<cstdio>
#include<set>
#include<queue>
#define PII pair<int,int>
using namespace std;
set<PII>s;
priority_queue<PII>q;
queue<PII>wait;
int ans,cnt;
bool check(int t,int m,int p)
{
set<PII>::iterator it,jt;
for(it=s.begin();it!=s.end();++it)
{
jt