本人已ak,第一题按照结束时间排序,用一个最小堆保存能做的任务价值,遇到来不及做的任务考虑是否替换堆中的最小价值。第二题dp[i][0/1]表示1-i位置时有解的最少操作数量,0代表取a,1代表取b。每次判断a[i]分别与a[i-1]和b[i-1]的关系,b[i]分别与a[i-1]和b[i-1]的关系。如果当前ab都小于前面的ab,则输出-1,否则选择前一位可能的dpmin值,算递推时取b的时候要+1,a不用。