写一下这题的反省。
首先选相邻的两个比较是不用说的。
我自己的想法居然是分类讨论。
果然是被数学思想毒害了。
要注意的有两点:
等价于
(至少本题如此)
都是基本操作的说,但就是没想到。。
最后要注意的就是要把放到
中以配平成
使其消掉。
(本来就不是给别人看的所以自己懂就好)
#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;
}
京公网安备 11010502036488号