标签: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