脑子卡壳了,求思路


image
代码:

#include<bits/stdc++.h>
using namespace std;
bool cmp(pair<pair<int,int>,int>a,pair<pair<int,int>,int>b){
  if(a.second==b.second)return a.first.first<b.first.first;
  return a.second<b.second;
}int main(){
  int n,l,r;
  vector<pair<pair<int,int>,int> >t;
  cin>>n;
  for(int i=0;i<n;i++){
    cin>>l>>r;
    t.push_back({{l,r},r-l});
  }unique(t.begin(),t.end());
  sort(t.begin(),t.end(),cmp);
  n=t.size();
  /*这里卡住了*/
}

(pair套pair太难看了,建议用结构体数组)
遍历一遍,满足条件的之中结束时间早的优先,结束时间相同的开始时间早的优先(本题与课程时间的长短无关)

2 个赞