AT_abc405_f.[ABC405F] Chord Crossing

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在一个圆上等距分布着 2N2N 个点,顺时针编号为 1,2,⋯ ,2N1,2,\cdots,2N。2N2N 顺时针方向的下一个点是 11。

接下来圆上出现了 MM 条线段,第 ii 条线段的两个端点分别为 AiA_i 和 BiB_i,并且这两个端点的编号是偶数。保证不会有两条线段共享一个端点。

接下来你要回答 QQ 个询问,每次询问给出两个奇数 Cj,DjC_j,D_j,你要回答如果圆上新增了一条线段,两个端点分别是 Cj,DjC_j,D_j,那么这条新线段会和原有的 MM 条线段中的多少条相交。

输入格式

第一行两个整数 N,M(2≤N≤106,1≤M≤min⁡(⌊N2⌋,2×105))N,M(2\le N\le 10^6,1\le M\le \min(\left\lfloor\frac{N}{2}\right\rfloor,2\times 10^5))。
接下来 MM 行,每行两个整数 Ai,Bi(1≤Ai<Bi≤2N,Ai,Bi mod 2=0)A_i,B_i(1\le A_i<B_i\le 2N,A_i,B_i\bmod2=0),表示圆上的线段。保证这 MM 条线段中没有两条存在交点。
接下来一行一个整数 Q(1≤Q≤2×105)Q(1\le Q\le 2\times 10^5)。
接下来 QQ 行每行两个整数 Cj,Dj(1≤Cj<Dj≤2N,Cj,Dj mod 2=1)C_j,D_j(1\le C_j<D_j\le 2N,C_j,D_j\bmod 2=1),表示一次询问。

输出格式

输出 QQ 行,每行一个整数依次回答询问。

输入输出样例

  • 输入#1

    4 2
    2 4
    6 8
    3
    1 3
    3 7
    1 5

    输出#1

    1
    2
    0
  • 输入#2

    20 7
    24 34
    26 28
    18 38
    2 14
    8 12
    30 32
    20 22
    10
    7 29
    31 39
    9 21
    19 29
    15 21
    11 39
    17 21
    15 31
    5 25
    25 31

    输出#2

    3
    3
    4
    1
    2
    2
    2
    3
    3
    1

说明/提示

样例 1 解释

如下图:

黑点表示圆上的 2N2N 个点,蓝线为 MM 条线段,第 ii 条称线段 ii;红线表示询问,第 ii 个对应的线段称询问 ii。

  • 第一次询问中,和询问 11 相交的线段为线段 11;
  • 第二次询问中,和询问 22 相交的线段有线段 1,21,2;
  • 第三次询问中,没有线段和询问 33 相交。

By @chenxi2009

输入解题思路,AI测评打分。不知道怎么写?

首页