当前位置: 首页 > wzjs >正文

网站建设经典范例手机加速器

网站建设经典范例,手机加速器,免费下载公众号,有哪些在线做图的网站文章目录 什么是区间合并怎么做区间合并AcWing 803. 区间合并思路解析my - CODEdalao の CODE 什么是区间合并 区间合并是指给定多个区间,让你将重合的区间合并为一个区间 怎么做区间合并 区间合并类问题大多三个办法: 按左端点排序按右端点排序按左右…

文章目录

  • 什么是区间合并
  • 怎么做区间合并
  • AcWing 803. 区间合并
    • 思路解析
    • my - CODE
    • dalao の CODE



什么是区间合并

区间合并是指给定多个区间,让你将重合的区间合并为一个区间


怎么做区间合并

区间合并类问题大多三个办法:

  • 按左端点排序
  • 按右端点排序
  • 按左右端点双值排序

AcWing 803. 区间合并

题目链接:https://www.acwing.com/activity/content/problem/content/837/
区间和

思路解析

  • 我们按左端点大小将区间排序,排完序后从每个区间左端点开始遍历,我们会发现有三种情况
    • B区间在A
    • C区间有一部分与A重合
    • D区间在A
      三种情况
  • 我们的思路很明了了,通过两个指针:st(start),ed(end) 来标记我们正在维护的A数组的左右端点,往后遍历,处理三种情况
    • 如果遇到B:左端点不动,右端点也不动
    • 如果遇到C:左端点不动,右端点更新为C的右端点,也就是将A,C区间合并了
    • 如果遇到D:左右端点更新为D的左右端点,相当于现在改为维护D区间

my - CODE

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>using namespace std;typedef pair<int, int> pii;vector<pii> segs;			// 存储区间左右端点int main()
{int n, l, r;int ans = 0;cin >> n;while (n -- ){scanf("%d%d", &l, &r);segs.push_back({l, r});}sort(segs.begin(), segs.end());		// 以左端点优先排序int st = -1e9 - 1, ed = -1e9 - 1;	// 一开始的区间初始化为一个不可能的区间for(auto seg : segs){if(seg.first <= ed) ed = max(ed, seg.second);	// 有重合,右端点取最大else{			// 无重合,更新维护的区间ans++;st = seg.first;ed = seg.second;}}cout << ans << endl;
}

dalao の CODE

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;typedef pair<int, int> PII;void merge(vector<PII> &segs)
{vector<PII> res;sort(segs.begin(), segs.end());int st = -2e9, ed = -2e9;for (auto seg : segs)if (ed < seg.first){if (st != -2e9) res.push_back({st, ed});st = seg.first, ed = seg.second;}else ed = max(ed, seg.second);if (st != -2e9) res.push_back({st, ed});segs = res;
}int main()
{int n;scanf("%d", &n);vector<PII> segs;for (int i = 0; i < n; i ++ ){int l, r;scanf("%d%d", &l, &r);segs.push_back({l, r});}merge(segs);cout << segs.size() << endl;return 0;
}作者:yxc
链接:https://www.acwing.com/activity/content/code/content/40108/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • dalao将合并统计区间的过程抽出来单独写了个merge()函数,复用性和可读性更强
  • 而且将合并后的区间按秩存入了一个res空间,对于本题可能没有卵用,但是在其他区间合并问题中可能会用到合并后的区间
  • 不愧是dalao啊,orz %%%%%%
http://www.dtcms.com/wzjs/569197.html

相关文章:

  • 建设企业查询网站wordpress页面构建
  • 培训管理网站建设怎么做网站设计方案
  • 网页ui设计教程给网站做排名优化学什么好
  • 为什么网站设计很少全屏企业网站建设找外包公司做
  • rpg制作大师seo搜索引擎优化原理
  • 找人做网站设计 哪个平台可以找网站建设营销策划方案
  • 网站推广线上推广网站微信建设运营经验分享
  • 做h5比较好的网站网页设计教程免费
  • 想自己做网站需要会什么宁夏小蚁人网站建设
  • 怎么制作个人网站凡科投票
  • 邢台做网站推广的地方餐饮类网站设计
  • 东莞哪里做网站企业网站建设费用 珠海
  • 美食网站建设的时间进度表衡水手机网站建设
  • 帝国做的电影网站wordpress linux安装
  • 当涂住房和城乡建设网站中国摄影网站有哪些
  • 网站编辑器无法显示网站建设记入什么科目
  • 怀化优化网站排名管理咨询公司怎么开展业务
  • 建设网站赚钱猛兽领主网站建设在电子商务中意义
  • 四川省建设工程质量安全协会网站手机微信网页版登录入口
  • 福建省住房与城乡建设厅网站北京网站备案地址
  • seo外包优化网站山东关键词优化推广
  • 广州市专业网站建设影视logo设计制作器
  • 电子商务网站开发目的和意义企业邮箱是干嘛用的
  • 深圳汇鑫科技网站建设dw网站模板
  • xp asp 网站建设黑龙江建设网三类人员
  • 做网站程序什么是网络设计方案
  • 南宁手机平台网站建设电脑优化是什么意思
  • 网站手机端做app开发工具成全视频免费高清观看在线韩剧
  • 大连做网站公司怎么做网页
  • 校园网站建设费用在哪人网站要以接it项目做