RT,想知道对于 k 从 1 到 N 每次选取的 maxBi 是否具有单调性。
如果有,求调/kk
int n,ans[200010],id[200010];
pii a[200010];
void main_solve(int test_id)
{
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i].sec>>a[i].fir;
sort(a+1,a+n+1);
for(int i=n-1;i>=0;i--)
if(!id[i+1]||a[i+1].sec-a[i+1].fir>a[id[i+1]].sec-a[id[i+1]].fir)id[i]=i+1;
else id[i]=id[i+1];
int l=0;
priority_queue<pii>q;
for(int i=1;i<=n;i++)
if(i>l||l!=n&&q.top().fir<=a[id[l]].sec-a[id[l]].fir+a[id[l]].fir)
{
int k=id[l];
ans[i]=ans[i-1]+a[k].sec-a[k].fir+a[l].fir;
// cout<<" "<<i<<" "<<l<<" "<<k<<endl;
for(int j=l+1;j<k;j++)q.push(pii(a[j].sec,j));
l=k;
}
else
{
pii p=q.top();
ans[i]=ans[i-1]+p.fir;
q.pop();
}
for(int i=1;i<=n;i++)cout<<ans[i]<<endl;
return;
}
已开 long long。