hdu 4268 贪心

来源:互联网 发布:骁龙处理器 windows 10 编辑:程序博客网 时间:2024/06/08 02:34

STL是多么重要啊。

#include<stdio.h>#include<algorithm>#include<set>using namespace std;typedef struct{    int h,w;}Node; Node Alice[100010],Bob[100010]; multiset<int> s;int cmp(Node a,Node b){    if(a.w==b.w)  return a.h<b.h;    return a.w<b.w;}int main(){    int T,N,h,w,i,j,ans;    scanf("%d",&T);    while(T--)    {        s.clear();ans=0;        scanf("%d",&N);        for(i=1;i<=N;i++) scanf("%d%d",&Alice[i].h,&Alice[i].w);        for(i=1;i<=N;i++) scanf("%d%d",&Bob[i].h,&Bob[i].w);        sort(Alice+1,Alice+N+1,cmp);        sort(Bob+1,Bob+N+1,cmp);        int p=1; int k;        for(i=1;i<=N;i++)        {            while( p<=N && Bob[p].w<=Alice[i].w )            {                s.insert(Bob[p].h); p++;            }            if(s.empty()) continue;            multiset<int>::iterator it=s.lower_bound(Alice[i].h);            if( *(it) == Alice[i].h)            {                s.erase(it); ans++;            }            else            {                if(it==s.begin())  continue;                else  s.erase(--it),ans++;            }        }        printf("%d\n",ans);    }    return 0;}


原创粉丝点击