编程题
### 问题描述 小明玩了一会俄罗斯方块,看着堆叠如山的方块,他又有了新的想法,那就是对于一个区间,有多少种不同的方块,假设每块落下的方块都是不同的。 俄罗斯方块每次都会随机落下一种方块,玩家一般来说要做的是将其整齐堆放凑整一行的方块将其消除,于是小明思考在 $n$ 轮下落中,每轮下落的方块左端点为 $l$ ,右端点为 $r$ ,小明想知道在 $n$ 次下落后,区间 $x\sim y$ 中有多少不同的方块。 小明想在短时间内迅速得到自己想知道的答案,你能帮帮他吗。 ### 输入格式 第一行,包含一个正整数 $n$ $(1\leq n\leq 2\times 10^5)$ ,代表小明进行的游戏轮数,同时也是小明的询问次数。 接下来 $n$ 行,每行包含两个正整数 $l$ 和 $r$ $(1\leq l,r\leq 10^6)$ ,代表每轮下落的方块的左右端点。 接下来一行,包含一个正整数 $q$ $(1\leq q\leq 2\times 10^5)$ ,代表小明要进行 $q$ 次询问。 接下来 $q$ 行,每行包含两个正整数 $x$ 和 $y$ $(1\leq x,y\leq 10^6)$ ,代表每轮小明询问的左右端点。 ### 输出格式 输出 $q$ 行,每行包含一个正整数,代表询问区间中有多少种不同的线段。 ### 样例输入 ``` 3 3 5 1 4 6 8 3 2 4 1 5 4 7 ``` ### 样例输出 ``` 2 2 3 ``` ### 样例说明 询问共有 $q$ 轮: 第一次小明询问区间 $2\sim4$ 之间有多少种不同的方块,显然第一条和第二条线段有在区间 $2\sim 4$ 中,故输出 $2$ 。 第二次小明询问区间 $1\sim 5$ 之间是否有未被覆盖的点,显然第一条和第二条线段有在区间 $1\sim 5$ 中,故输出 $2$ 。 第二次小明询问区间 $4\sim 7$ 之间是否有未被覆盖的点,显然三条线段都有在区间 $2\sim 4$ 中,故输出 $3$ 。
查看答案
赣ICP备20007335号-2