您的位置:首页 > 其它

ZOJ 3197 扫描 364页

2014-07-18 17:43 537 查看
n 个区间【li , ri】 选出最少的区间,使得覆盖住【1 ,N 】

const  int  maxn = 5008 ;
pair<int , int> lis[maxn] ;

int  main(){
int t , n , i ,  j , l , r  , s  , c  ;
cin>>t ;
while(t--){
scanf("%d" , &n) ;
for(i = 0 ; i < n ; i++) scanf("%d%d" , &lis[i].first , &lis[i].second) ;
sort(lis , lis+n) ;
i = s = r =  0 ;
l = 1 ;
while(i < n && l <= n){
c =  l ;
while(lis[i].first <= c){
r = max(r , lis[i].second) ;
i++ ;
}
s++ ;
l = r + 1 ;
r = 0 ;
}
cout<< s << endl ;
}
return 0 ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: