题解
首先,我们来学会如何判断在一系列线段中是否存在不相交线段。
我们选取所有线段中最大的左边界l_max和最小的右边界r_min,我们可以清楚的知晓当l_max>r_min的时候存在不相交线段(贪心的思想),否则不存在。
code
#include<bits/stdc++.h> using namespace std; typedef long long ll; int main(){ int t,ll,rr; multiset<int > l,r; char c; cin>>t; while (t--){ cin>>c>>ll>>rr; if (c=='+') { l.insert(ll); r.insert(rr); } if (c=='-'){ l.erase(l.find(ll)); r.erase(r.find(rr)); } multiset<int >::iterator it1=l.end(),it2=r.begin(); if (l.size()>1 && *(--it1)>*(it2)) cout<<"YES\n"; else cout<<"NO\n"; } return 0; }
标签:Love,rr,min,ll,long,erase,线段 From: https://www.cnblogs.com/purple123/p/18242577