不能过于偏向于队友,应该相信自己的判断。这么简单的搜索题目竟然被搞的如此2B。。。
3^15的搜索剪剪枝可以想想,4^15的就不用思考了。。。
直接枚举放在哪个上面,并且a<=b<=c , 一个判断即可。set除掉重复
#include <iostream>
#include <stdio.h>
#include <map>
#include <set>
#include <string.h>
#include <algorithm>
using namespace std;
map< int , int > Meng;
set< int > zhu;
const int N = 200000;
struct Men{
int l,r;
bool operator < (const Men & A) const{
if (l!=A.l) return l<A.l;
return r<A.r;
}
void input(){
scanf("%d%d",&l,&r);
}
}p[N],q[N];
int n;
void solve(){
Meng.clear();
zhu.clear();
scanf("%d",&n);
for (int i = 1 ; i <= n ; ++ i) p[i].input();
for (int i = 1 ; i <= n ; ++ i) q[i].input();
sort(p + 1 , p + 1 + n);
sort(q + 1 , q + 1 + n);
int j=1,ans = 0;
for (int i = 1 ; i <= n ; ++ i){
while(q[j].l <= p[i].l && j <= n){
zhu.insert(-q[j].r);
Meng[-q[j].r]++;
j++;
}
set<int> :: iterator iter=zhu.lower_bound(-p[i].r);
if (iter != zhu.end()){
++ans;
int now = *iter;
--Meng[now];
if (Meng[now]==0){
zhu.erase(now);
}
}
}
printf("%d\n",ans);
}
int main(){
int _;
cin >> _;
while ( _-- ) solve();
}

本文介绍了一种使用C++进行程序设计竞赛的方法,通过优化数据结构和算法来提高程序效率。文章详细解释了如何利用map和set等STL容器解决特定问题,并提供了完整的代码示例。
513

被折叠的 条评论
为什么被折叠?



