codeves 1214 线段覆盖

思路:排序之后,对于当前这个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 }

 

posted on 2017-07-23 19:12  hhhhx  阅读(92)  评论(0编辑  收藏  举报

导航