样例可过,代码思路是根据某篇题解。
反悔贪心代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
struct node{
int t1,t2;
}a[150005];
priority_queue<int>q;
bool cmp(node aa,node bb){
return aa.t1<bb.t1;
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].t1>>a[i].t2;
}
sort(a+1,a+n+1,cmp);
int tim=0,ans=0;
for(int i=1;i<=n;i++){
if(tim<=a[i].t1){
tim+=a[i].t2;
q.push(a[i].t2);
ans++;
}else{
if(a[i].t2<q.top()){
tim-=q.top();
tim+=a[i].t2;
}
}
}
cout<<ans;
return 0;
}
另外,我AC了是曾经帮调时A的