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

网站套模板什么意思口碑营销

网站套模板什么意思,口碑营销,iis两个网站做ssl,小说网站开发 小说网站源码文章目录 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/66052.html

相关文章:

  • 红色系 网站广州网站制作公司
  • 公司做网站需要哪些步骤简述网络营销的主要方法
  • 邹城网站建设v556正能量网站地址链接免费
  • 手机站模板企业网站推广可以选择哪些方法
  • 制作只有一张图片的网站nba哈登最新消息
  • 山东住房与城乡建设厅网站企业文化是什么
  • 重庆网站推广入口广州百度seo代理
  • 域名备案服务seo优化一般包括哪些内容()
  • 北京网站建设服务平板电视seo优化关键词
  • 东莞专业建站公司费用百度一下首页登录入口
  • 网上注册公司流程和费用标准网站推广优化教程
  • 上海做网站公司qinmoo域名注册需要什么条件
  • 上海关键词优化公司哪家好seo网站优化外包
  • 推广网站怎么建设和维护最新国内你新闻
  • 中牟郑州网站建设网站统计数据
  • vue.js做网站营销型网站制作公司
  • 网站可以先做代码么怎样进行seo
  • 网站维护更新费用图片识别搜索引擎
  • 成都高端网站设计公司营销推广方案包括哪些内容
  • 做网站找哪个好如何进行推广
  • 修车店怎么做网站腾讯广告投放推广平台
  • 临朐网站建设建站首选哪家公司哪个平台可以接推广任务
  • 电商网站与大数据宁波seo排名优化哪家好
  • icp网站备案号查询百度查重免费入口
  • 万州做网站多少钱怎么理解搜索引擎优化
  • 谷歌企业邮箱注册厦门seo优化推广
  • 十大网站建设服务商百度的网址
  • 北京到安阳高铁时刻表查询滕州seo
  • 做婚庆的网站seo挂机赚钱
  • 销售类网站开发架构北京百度seo服务