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

个人网站设计规划书海口自助建站软件

个人网站设计规划书,海口自助建站软件,八佰yy影视,做网站编辑大专可以吗问题描述 给定 N N N个闭区间 [ a i , b i ] [a_i,b_i] [ai​,bi​],以及一个线段区间 [ s , t ] [s,t] [s,t],请你选择尽量少的区间,将指定线段区间完全覆盖。 输出最少区间数,如果无法完全覆盖则输出 − 1 -1 −1。 输入格式…

问题描述

给定 N N N个闭区间 [ a i , b i ] [a_i,b_i] [ai,bi],以及一个线段区间 [ s , t ] [s,t] [s,t],请你选择尽量少的区间,将指定线段区间完全覆盖。

输出最少区间数,如果无法完全覆盖则输出 − 1 -1 1

输入格式

第一行包含两个整数 s s s t t t,表示给定线段区间的两个端点。

第二行包含整数 N N N,表示给定区间数。

接下来 N N N行,每行包含两个整数 a i , b i a_i,b_i ai,bi,表示一个区间的两个端点。

输出格式

输出一个整数,表示所需最少区间数。

如果无解,则输出 − 1 -1 1

数据范围

1 ≤ N ≤ 1 0 5 1≤N≤10^5 1N105 − 1 0 9 ≤ a i ≤ b i ≤ 1 0 9 -10^9≤a_i≤b_i≤10^9 109aibi109

− 1 0 9 ≤ s ≤ t ≤ 1 0 9 -10^9≤s≤t≤10^9 109st109

输入样例

1 5
3
-1 3
2 4
3 5

输出样例

2

算法思想

从测试样例分析,要覆盖线段区间 [ 1 , 5 ] [1,5] [1,5],只需要 2 2 2个闭区间 [ − 1 , 3 ] [-1,3] [1,3] [ 3 , 5 ] [3,5] [3,5],如下图所示。

在这里插入图片描述
可以采用贪心的思想来解决这个问题:

  • 首先将 N N N个闭区间 [ a i , b i ] [a_i,b_i] [ai,bi]按左端点排序
  • 从前向后遍历每个区间
    • 在所有能覆盖线段区间 [ s , t ] [s,t] [s,t]左端点 s s s的区间中,选择右端点最大的区间 [ a j , b j ] [a_j,b_j] [aj,bj],其中 a j ≤ s a_j\le s ajs,表示能够覆盖点 s s s
    • 然后将 s s s更新成所有满足条件的区间中右端点的最大值
    • 重复上述过程,直到 s ≥ t s\ge t st,表示线段区间被完全覆盖

时间复杂度

  • n n n个区间排序的时间复杂度为 O ( n l o g n ) O(nlogn) O(nlogn)
  • 从前向后遍历每个区间,由于每个区间仅会处理 1 1 1次,因此时间复杂度为 O ( n ) O(n) O(n)

总的时间复杂度为 O ( n + n l o g n ) O(n + nlogn) O(n+nlogn)

代码实现

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e5 + 10;
typedef pair<int, int> PII;
PII st[N];
int main()
{int s, t, n, ans = 0, flag = 0;cin >> s >> t >> n;for(int i = 0; i < n; i ++) cin >> st[i].first >> st[i].second;//排序sort(st, st + n);for(int i = 0; i < n; i ++){//在所有能覆盖线段左端点s的区间中,选择右端点最大的区间int j = i, R = -1e9;while(j < n && st[j].first <= s) R = max(R, st[j ++].second);//无法覆盖左端点sif(R < s) break;ans ++; //需要的区间个数增加1s = R; //更新要覆盖的左端点if(s >= t) //覆盖完成{flag = 1;break;}i = j - 1; //继续从当前区间向后遍历}if(flag) cout << ans;else cout << -1;return 0;
}
http://www.yayakq.cn/news/190145/

相关文章:

  • 石家庄网站建设外包公司图书馆网站建设背景
  • 做个手机网站多少钱网店网络营销与推广策划书
  • 中国互联网网站性能dede网站建设
  • 做一个公司网站一般多少钱wordpress 菜单 固定
  • wordpress icon设置seog
  • 做关于什么样的网站好eclipse做网站代码
  • 网站建设设计有限公司北京到安阳火车时刻表查询
  • 有什么可以下载软件的网站深圳物流公司联系电话
  • 游戏设计师网站有哪些广州制作外贸网站公司
  • 公司建设一个网站有什么好处阿里云零基础网站建设教学
  • 宁波住房和城乡建设局网站有源码怎么做app
  • 网站建设玖金手指花总微信定制v怎么弄
  • 怎样把自己做的网站上传到网上房产网网站
  • 衡水做wap网站费用怎么看网站是谁家做的
  • 做视频网站怎么挣钱吗网页升级维护
  • 电子商务网站建设的实训报告中文wordpress搭建
  • 怎么在网上做彩票网站wordpress 显示选项
  • 做网站的要多钱wordpress启用旧的编辑器
  • 卖护肤在哪个网站做宣传好做简历用的网站
  • 企业网站后端模板微网站工程案例展示
  • 网站联动是什么意思上海专业网站建设费
  • 交互型网站难做吗建设俄语网站
  • 有创意的广告图片及赏析WordPress安装两个seo插件
  • 网站改版需求说明php网站后台访问统计分析
  • 好的学校网站设计flash网站制作教程
  • php网站建设的几个流程三合一网站介绍
  • 律师事务所公司类网站建设案例免费的推广软件有哪些
  • 网站建好了还需要什么维护网站是意识形态建设
  • 单页网站作用是什么短视频营销案例分析
  • 想百度搜到网站新域名怎么做上海企业优化