思路:排序之后,对于当前这个ri,看是否能找到li
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 struct node{ 5 int x,y,z; 6 }a[2002]; 7 8 bool cmp(node p,node q){ 9 if(p.x==q.x) return p.y<q.y; 10 return p.x<q.x; 11 } 12 set<int >ss; 13 int main(){ 14 int n; 15 int x,y; 16 cin>>n; 17 int l=0,sum=0; 18 for(int i=1;i<=n;i++){ 19 scanf("%d%d",&x,&y); 20 if(x>y) swap(x,y); 21 a[++l].x=x;a[l].y=1;a[l].z=i; 22 a[++l].x=y;a[l].y=-1;a[l].z=i; 23 } 24 sort(a+1,a+1+l,cmp); 25 int ll=0; 26 for(int i=1;i<=l;i++){ 27 if(a[i].y==-1&&ss.count(a[i].z)){ 28 sum++;ss.clear(); 29 } 30 else ss.insert(a[i].z); 31 } 32 cout<<sum<<endl; 33 }
时间: 2024-12-06 22:50:46