按照t2从小到大排列之后贪心。
若当前任务可以插入,则插入。
若当前任务不可以插入,分两种情况:
①当前任务的耗时大于等于之前插入的任务的最大耗时:跳过当前任务
②当前任务的耗时小于之前插入的任务的耗时:将最前插入的耗时最大的那个任务删除,插入当前任务
用堆维护
#include#include #include #include #include #include #include using namespace std; #define MAXN 150010 priority_queue q; int n;int i;int res,ans,tmp; struct Node{ int t,d;}a[MAXN]; int cmp(Node x,Node y){ return x.d