CF1175E.Minimal Segment Cover
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given n intervals in form [l;r] on a number line.
You are also given m queries in form [x;y]. What is the minimal number of intervals you have to take so that every point (not necessarily integer) from x to y is covered by at least one of them?
If you can't choose intervals so that every point from x to y is covered, then print -1 for that query.
给你数轴上的 n 个区间,每个区间形如 [l;r]。
同时给你 m 个查询,每个查询形如 [x;y]。你需要选出最少数量的区间,使得从 x 到 y 的每一个点(不一定是整数)都被至少一个所选区间覆盖。
如果无法选出若干区间使得 x 到 y 之间的所有点均被覆盖,则对该查询输出 -1。
输入格式
The first line contains two integers n and m (1≤n,m≤2⋅105) — the number of intervals and the number of queries, respectively.
Each of the next n lines contains two integer numbers li and ri (0≤li<ri≤5⋅105) — the given intervals.
Each of the next m lines contains two integer numbers xi and yi (0≤xi<yi≤5⋅105) — the queries.
第一行包含两个整数 n 和 m(1≤n,m≤2⋅105),分别表示区间的数量和查询的数量。
接下来的 n 行中,每行包含两个整数 li 和 ri(0≤li<ri≤5⋅105),表示给定的区间。
接下来的 m 行中,每行包含两个整数 xi 和 yi(0≤xi<yi≤5⋅105),表示查询。
输出格式
Print m integer numbers. The i-th number should be the answer to the i-th query: either the minimal number of intervals you have to take so that every point (not necessarily integer) from xi to yi is covered by at least one of them or -1 if you can't choose intervals so that every point from xi to yi is covered.
输出 m 个整数。其中第 i 个数应为第 i 个查询的答案:即覆盖区间 [xi,yi] 中每个点(不一定是整数)所需的最少区间数量;若无法选择若干区间使得 [xi,yi] 中的每个点均被至少一个区间覆盖,则输出 −1。
输入输出样例
输入#1
2 3 1 3 2 4 1 3 1 4 3 4
输出#1
1 2 1
输入#2
3 4 1 3 1 3 4 5 1 2 1 3 1 4 1 5
输出#2
1 1 -1 -1
说明/提示
In the first example there are three queries:
- query [1;3] can be covered by interval [1;3];
- query [1;4] can be covered by intervals [1;3] and [2;4]. There is no way to cover [1;4] by a single interval;
- query [3;4] can be covered by interval [2;4]. It doesn't matter that the other points are covered besides the given query.
In the second example there are four queries:
- query [1;2] can be covered by interval [1;3]. Note that you can choose any of the two given intervals [1;3];
- query [1;3] can be covered by interval [1;3];
- query [1;4] can't be covered by any set of intervals;
- query [1;5] can't be covered by any set of intervals. Note that intervals [1;3] and [4;5] together don't cover [1;5] because even non-integer points should be covered. Here 3.5, for example, isn't covered.
在第一个例子中有三个查询:
- 查询 [1;3] 可由区间 [1;3] 覆盖;
- 查询 [1;4] 可由区间 [1;3] 和 [2;4] 覆盖。不存在仅用一个区间覆盖 [1;4] 的方法;
- 查询 [3;4] 可由区间 [2;4] 覆盖。除查询所指定的点之外,其他点是否被覆盖无关紧要。
在第二个例子中有四个查询:
- 查询 [1;2] 可由区间 [1;3] 覆盖。注意:你可以任选两个给定的区间 [1;3] 中的一个;
- 查询 [1;3] 可由区间 [1;3] 覆盖;
- 查询 [1;4] 无法被任何一组区间覆盖;
- 查询 [1;5] 无法被任何一组区间覆盖。注意:区间 [1;3] 和 [4;5] 合起来并不能覆盖 [1;5],因为所有实数点(包括非整数点)都必须被覆盖。例如,点 3.5 就未被覆盖。
输入解题思路,AI测评打分。不知道怎么写?