先按照T2从小到大排序,然后进行贪心. 第i个任务能完成的条件是,sigma(T1[j])+T1[i]<=T2[i] ( j 为之前所选的任务) 如果这个任务不能完成,若max(T1[j]) >T1[i]) , 就将i替换为j , 这样可以使所用任务时间减小. 用一个堆维护最大值即可. Program XJOI2320; ; ..maxn] of longint; n,i:longint; sum,num,ans:int64; procedure sort(l,r: longint); var…