写一下这题的反省。

首先选相邻的两个比较是不用说的。

我自己的想法居然是分类讨论。

果然是被数学思想毒害了。

要注意的有两点:

等价于(至少本题如此)

都是基本操作的说,但就是没想到。。

最后要注意的就是要把放到中以配平成使其消掉。

(本来就不是给别人看的所以自己懂就好)

#include<iostream>
#include<algorithm>
#define maxn 20010
#define ll long long int
#define miin(a,b) ((a)<(b)?(a):(b))
#define maax(a,b) ((a)<(b)?(b):(a))
using namespace std;

struct People{
    ll a,b;
    bool operator < (const People &rhy)const{
        return miin(a,rhy.b)<miin(rhy.a,b);
    }
}dachen[maxn];
int main(){
    int ci;cin>>ci;
    for(int t=1;t<=ci;t++){
        int n;cin>>n;
        for(int i=1;i<=n;i++)
        cin>>dachen[i].a>>dachen[i].b;
        sort(dachen+1,dachen+n+1);
        ll f=0,s=0;
        for(int i=1;i<=n;i++)
        s+=dachen[i].a,f=maax(f,s)+dachen[i].b;
        cout<<f<<endl;
    }
    return 0;
}