首页 > 其他 > 详细

【stl的神奇操作】用集合搞定区间相交

时间:2020-02-22 20:09:07      阅读:56      评论:0      收藏:0      [点我收藏+]

https://www.luogu.com.cn/problem/P2161

 

根据大佬说的来做了。

判断结构体a和b大小,看a是否完全在b的左边,一下代码中,相交的集合是在数学意义上相同的。

例如1--3 等于  2  -- 5

相交就相等

 

#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
#include<set>
using namespace std;
struct Node{
	int l,r;
}; 
bool operator < (const Node a,const Node b){
	return a.r < b.l;
}

set<Node>ins;
string op;
int main(){
	int n;
	scanf("%d",&n);
	while(n--){
		cin>>op;
		if(op == "A"){
			int l,r;
			scanf("%d %d",&l,&r);
			Node ans ;
			ans.l = l;
			ans.r = r;
			set<Node>::iterator it = ins.find(ans);
			int cnt=0;
			while(it != ins.end()){
				cnt++;
				ins.erase(it);
				it = ins.find(ans);
			}
			ins.insert(ans);
			printf("%d\n",cnt);
		}
		else{
			printf("%d\n",ins.size());
		}
		cout<<endl;
	} 
	return 0;
} 

 

【stl的神奇操作】用集合搞定区间相交

原文:https://www.cnblogs.com/lesning/p/12346658.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!