区间合并【简单贪心】acwing803

网友投稿 579 2022-10-31

区间合并【简单贪心】acwing803

区间合并【简单贪心】acwing803

区间合并【简单贪心】acwing803

将所有区间进行排序,按照左端点从小到大、右端点从小到大的优先级排序,然后遍历判断每一个区间是否能和前面的区间合并即可。

ac代码

#includeusing namespace std;#define int long long#define pii pair#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int n,l,r;pii v[100005];bool note[100005];bool cmp(pii a,pii b){ if(a.first < b.first) return true; else if(a.first > b.first) return false; return a.second < b.second;}signed main(){ IOS cin>>n; for(int i = 1;i <= n;++i) cin>>v[i].first>>v[i].second; sort(v + 1,v + n + 1,cmp); int mn = v[1].second;note[1] = true; for(int i = 2;i <= n;++i) if(v[i].first <= mn) mn = max(v[i].second,mn); else mn = v[i].second,note[i] = true; int ans = 0; for(int i = 1;i <= n;++i) ans += note[i]; cout<

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:题目:CSP 201612-3 权限查询
下一篇:Litho: 一个声明式框架用于在Android上构建高效UI
相关文章

 发表评论

暂时没有评论,来抢沙发吧~