HDU 4268 Alice and Bob——STl upper_bound + 贪心
2014-04-12 15:32
323 查看
题目链接点击打开链接
刚做这题时 受到田忌赛马的影响,打算用最大覆盖最大 结果WA了 。后来和学长讨论,原来我对 田忌赛马 就没理解好,用大一点点的覆盖这种方法才是通用的 只不过在一维的
田忌赛马中最大覆盖最大也是可以的,在代码实现时 最大覆盖最大 更简单些 。但是这题就不行了 。
改了方法后 还是WA 。原来我对upper bound 理解不好 忽略了对于边界值的处理。再次修改后 终于过了……
刚做这题时 受到田忌赛马的影响,打算用最大覆盖最大 结果WA了 。后来和学长讨论,原来我对 田忌赛马 就没理解好,用大一点点的覆盖这种方法才是通用的 只不过在一维的
田忌赛马中最大覆盖最大也是可以的,在代码实现时 最大覆盖最大 更简单些 。但是这题就不行了 。
改了方法后 还是WA 。原来我对upper bound 理解不好 忽略了对于边界值的处理。再次修改后 终于过了……
#include<iostream> #include<cstdio> #include<string> #include<cstring> #include<cmath> #include<algorithm> #include<iomanip> #include<stdlib.h> #include<set> #include<map> #include<queue> using namespace std; struct Rect { long long h; long long w; }; bool cmp(Rect a,Rect b) { if(a.h==b.h) return a.w< b.w; return a.h<b.h; } Rect rect_a[100000]; Rect rect_b[100000]; int main() { int t; scanf("%d",&t); while(t--) { multiset<long long> mul;//用multiset实现 multiset<long long> ::iterator it; int n,i,j,cnt=0; scanf("%d",&n); for(i=0; i<n; i++) { scanf("%lld%lld",&rect_a[i].h,&rect_a[i].w); } sort(rect_a,rect_a+n,cmp); for(i=0; i<n; i++) { scanf("%lld%lld",&rect_b[i].h,&rect_b[i].w); } sort(rect_b,rect_b+n,cmp); j=0; for(i=0; i<n; i++) { while(j<n) { if(rect_a[i].h>=rect_b[j].h) { mul.insert(rect_b[j].w); j++; } if(rect_a[i].h<rect_b[j].h) { break; } } it=mul.upper_bound(rect_a[i].w); if(it==mul.begin()) continue;//边界值……WA了好几发…… if(mul.size()>0&&it!=mul.begin())it--; if(mul.size()>0&&(*it)<=rect_a[i].w) { mul.erase(it); cnt++; } } cout<<cnt<<endl; } return 0; }
相关文章推荐
- HDU 4268 Alice and Bob(贪心)
- Alice and Bob----HDU_4268----贪心+STL
- hdu 4268 Alice and Bob(贪心)
- hdu 4268 Alice and Bob矩形覆盖(贪心)
- HDU 4268 Alice and Bob [贪心]
- hdu 4268 Alice and Bob(贪心+multiset)
- hdu 4268 Alice and Bob(lower_bound+贪心)
- hdu 4268 Alice and Bob(贪心)
- HDU 4268 Alice and Bob (贪心)
- HDU 4268 Alice and Bob(贪心+multiset)
- HDU 4268 Alice and Bob(贪心)
- 【set+贪心】HDU 4268——Alice and Bob
- hdu 4268 Alice and Bob(贪心+multiset+二分)
- HDU 4268 Alice and Bob(贪心+STL)
- HDU 4268 Alice and Bob(贪心+Multiset的应用)
- Alice and Bob(贪心HDU 4268)
- HDU 4268 Alice and Bob(贪心+Multiset的应用)
- HDU 4268-Alice and Bob-贪心
- Alice and Bob(贪心HDU 4268)
- hdu 4268 Alice and Bob(STL贪心)