标签:des style color io os ar for div sp
2 2 1 2 3 4 2 3 4 5 3 2 3 5 7 6 8 4 1 2 5 3 4
1 2
题意:
有童鞋A 和 童鞋B
A想用手里的牌尽量多地覆盖掉B手中的牌..
给出了T表示有T组样例..
每组样例给出一个n 表示A和B手中都有n张牌
接下来2*n行 有h w 分别代表A手中n张牌的高和宽 以及 B手中n张牌的高和宽
问A手中的牌最多能覆盖B多少张牌
Sort、 Multiset
#include <set>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 100000 + 10;
struct Node {
int w, h;
bool operator < (const Node& rhs) const
{
return w < rhs.w;
}
};
Node A[maxn], B[maxn];
multiset<int> ms;
multiset<int>::iterator it;
int n;
int main()
{
int T;
scanf("%d", &T);
while(T--) {
scanf("%d", &n);
for(int i=0; i<n; ++i) {
scanf("%d%d", &A[i].w, &A[i].h);
}
for(int i=0; i<n; ++i) {
scanf("%d%d", &B[i].w, &B[i].h);
}
sort(A, A+n);
sort(B, B+n);
int ans = 0;
ms.clear();
for(int i=0, j=0; i<n; ++i) {
while(j<n&&A[i].w>=B[j].w) {
ms.insert(B[j++].h);
}
if(ms.empty()) continue;
it = ms.upper_bound(A[i].h);
if(it != ms.begin()) {
ms.erase(--it);
ans++;
}
}
printf("%d\n", ans);
}
return 0;
}
hdu4268 Alice and Bob,multiset
标签:des style color io os ar for div sp
原文地址:http://blog.csdn.net/yew1eb/article/details/39501197