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

网站套模板什么意思鹤壁网络推广哪家好

网站套模板什么意思,鹤壁网络推广哪家好,创建网站服务器,整站排名文章目录 1. 题面2. 简单分析3. 代码解答4. TLE的2点可能 1. 题面 给定 N N N个区间 [ a i , b i ] [a_i,b_i] [ai​,bi​] 以及一个区间 [ s , t ] [s,t] [s,t],请你选择尽量少的区间,将指定区间完全覆盖。 输出最少区间数,如果无法完全…

文章目录

      • 1. 题面
      • 2. 简单分析
      • 3. 代码解答
      • 4. TLE的2点可能

1. 题面

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

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

输入格式

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

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

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

1 5
3
-1 3
2 4
3 5

输出样例:

2

2. 简单分析

这道题的贪心还是非常直观的。

  1. 将区间按从左到右的顺序排序
  2. 每次选择能够覆盖给定区间起点区间中,右端点最远的区间
  3. 起点更新为该区间的右端点
  4. 回到2进行循环,直到右端点超过区间终点

很简单的思路。但是实现的时候出了好几个bug,所以记录一下。

3. 代码解答

#include <iostream>
#include <algorithm>using namespace std;const int N = 100010;struct Range {int l, r;bool operator< (const Range& rg)const {return l < rg.l;}
}ranges[N];int main() {int n, a, b;cin >> a >> b >> n;for (int i = 0; i < n; i ++ ) cin >> ranges[i].l >> ranges[i].r;sort(ranges, ranges + n);int res = 0;for (int i = 0; i < n; i ++ ) {int j = i, m = -2e9;  // m 为区间右端点最大值while (j < n && ranges[j].l <= a) {m = max(m, ranges[j].r);j ++;}if (m < a) {break;}res ++;a = m;i = j - 1;if (m >= b) {cout << res;return 0;}}cout << -1;return 0;
}
import java.util.*;class Range implements Comparable<Range> {int l, r;public Range(int l, int r) {this.l = l;this.r = r;}public int compareTo(Range rg) {return Integer.compare(this.l, rg.l);}
}public class Main {public static void main(String[] args) {int N = 100010;Range[] ranges = new Range[N];Scanner sc = new Scanner(System.in);int a = sc.nextInt(), b = sc.nextInt(), n = sc.nextInt();for (int i = 0; i < n; i ++ ) {int l = sc.nextInt(), r = sc.nextInt();ranges[i] = new Range(l, r);}Arrays.sort(ranges, 0, n);int res = 0;for (int i = 0; i < n; i ++ ) {int j = i, m = -0x3f3f3f3f;while (j < n && ranges[j].l <= a) {m = Math.max(ranges[j].r, m);j ++;}if (m < a) break;res ++;a = m;i = j - 1;if (m >= b) {System.out.println(res);return;}}System.out.println(-1);}
}

4. TLE的2点可能

  1. 将区间右端点的最大值设置为外部变量了。
    以下面我的代码来说:不能将m设置为for循环外部变量,如果设置为外部变量仍需要在循环内每次赋新值,否则,当所给区间不能覆盖中间某区域时,while循环体不会执行,那么 j = i,i = i- 1,就会陷入循环。
  2. 手误,将while循环中的 j 写为 i 了。同样的会发生 j 不更新问题。j = i,i = i- 1,就会陷入循环。
http://www.dinnco.com/news/44137.html

相关文章:

  • 曲沃网站开发seo网站优化公司
  • wordpress后台权限惠州seo优化
  • 淘宝客网站容易做吗广州百度提升优化
  • 东阿企业做网站推广百度推广助手客户端
  • 91色做爰免费网站要做网络推广
  • 中国建筑室内设计师网武汉seo公司哪家好
  • 新手做网站什么类型自动外链工具
  • 做胃镜多少钱天津津门网站I关键词首页排名优化平台
  • asp.net门户网站项目怎么做最新国际新闻大事件
  • 自己做的网站搜索不到网络软文怎么写
  • 百度做网站的seo搜索引擎优化到底是什么
  • 如何完善企业网站建设软文怎么写
  • 自动提卡的网站怎么做的seo关键词快速获得排名
  • dw网页制作教程家长特色武汉标兵seo
  • 遵义市网站建设百度站长平台电脑版
  • 找人做网站排名职业培训机构排名
  • 网站建设中备案怎么制作seo搜索优化
  • 哪里有做php网站免费教程辅导机构
  • 长沙专业公司网站建设源头window优化大师官网
  • 苏州建设工程交易中心网站网站目录
  • wordpress站内搜索慢蜜雪冰城网络营销案例分析
  • 如何查询一个网站的注册信息代运营哪家比较可靠
  • 佛山网站优化推广方案地推网推平台
  • 学ui设计的培训班费用是多少百度热搜seo
  • 有效推广网站无锡谷歌优化
  • 石家庄建站平台优秀营销案例分享
  • 房屋设计用什么软件搜狗seo软件
  • 威海网站建设哪家的好西安优化seo
  • 怎么做外卖网站泉州关键词优化软件
  • 做网站什么框架比较好百度搜索推广创意方案