hdu 4268 Alice and Bob(multiset)

# include<stdio.h>
# include<algorithm>
# include<iostream>
# include<string.h>
# include<map>
# include<set>
# include<vector>
using namespace std;
struct node
{
    int h;
    int w;
};
struct node a[100010],b[100010];
bool cmp(node a1,node a2)
{
    if(a1.h==a2.h)
        return a1.w<a2.w;
    return a1.h<a2.h;
}
int main()
{
    int t,i,n,p;
    multiset<int>num;///可以插入相同元素,set只能插入不同元素
    multiset<int>::iterator it;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        for(i=0; i<n; i++)
            scanf("%d%d",&a[i].h,&a[i].w);
        for(i=0; i<n; i++)
            scanf("%d%d",&b[i].h,&b[i].w);
        sort(a,a+n,cmp);
        sort(b,b+n,cmp);
        int p=0;
        int ans=0;
        num.clear();
        for(i=0; i<n; i++)
        {
            while(p<n&&a[i].h>=b[p].h)
            {
                num.insert(b[p].w);
                p++;
            }
            if(num.empty())
                continue;
            it=num.upper_bound(a[i].w);///返回大于等于a[i].w的第一个元素 //set
            if(it!=num.begin())
            {
                ans++;
                it--;///小于a[i].w
                num.erase(it);///相同的元素都会删除
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}

时间: 2024-08-24 14:33:12

hdu 4268 Alice and Bob(multiset)的相关文章

HDU 4268 Alice and Bob(multiset的使用)

Alice and Bob Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3046    Accepted Submission(s): 995 Problem Description Alice and Bob's game never ends. Today, they introduce a new game. In this

hdu 4268 Alice and Bob(multiset|段树)

Alice and Bob Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2901    Accepted Submission(s): 941 Problem Description Alice and Bob's game never ends. Today, they introduce a new game. In this

hdu 4268 Alice and Bob(multiset|线段树)

Alice and Bob Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2901    Accepted Submission(s): 941 Problem Description Alice and Bob's game never ends. Today, they introduce a new game. In this

HDU 4268 Alice and Bob(贪心+multiset)

HDU 4268 题意:Alice与Bob在玩卡片游戏,他们每人有n张卡片,若Alice的一张卡片长与宽都不小于Bob的一张卡片,则Bob的卡片就会被盖住,一张卡片只可以使用一次,且不可旋转求Alice最多可以盖住多少张Bob的卡片. 思路:记录两人卡片情况,并按照长度将两人卡片分别降序排序.遍历两人的卡片,将长度小于Alice的卡片长度的Bob卡片的宽度插入multiset中,在multiset中找到小于等于Alice卡片宽度的第一个数,将这个数给消去且答案+1.//贪心法自行发挥即可. co

HDU 4268 Alice and Bob(贪心+Multiset的应用)

 题意: Alice和Bob有n个长方形,有长度和宽度,一个矩形可以覆盖另一个矩形的条件的是,本身长度大于等于另一个矩形,且宽度大于等于另一个矩形,矩形不可旋转,问你Alice最多能覆盖Bob的几个矩形? 思路:贪心,先按照h将Alice和Bob的矩形排序,对于Alice的每个矩形,如果Bob的矩形的h小于Alice的h,将Bob的w插入到集合中. 然后,在集合中找到不大于Alice矩形d的最大的Bob的d,那么这样做肯定是最优的. #include<cstdio> #include<

hdu 4268 Alice and Bob(贪心+multiset+二分)

Alice and Bob Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3511    Accepted Submission(s): 1129 Problem Description Alice and Bob's game never ends. Today, they introduce a new game. In thi

hdu 4268 Alice and Bob

Alice and Bob Time Limit : 10000/5000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 5   Accepted Submission(s) : 1 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description Alice and Bob's game nev

HDU 4268 Alice and Bob(贪心)

Alice and Bob                                                                Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description Alice and Bob's game never ends. Today, they introduce a new game. I

HDU 4268 Alice and Bob 贪心STL O(nlogn)

B - Alice and Bob Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description Alice and Bob's game never ends. Today, they introduce a new game. In this game, both of them have N different rectangular cards respectively.