最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • Cutting Woods

    正文概述 陈老师   2026-01-20 15:30:40  

    题目描述

    我们有一根长度为 LL 米的木材。对于每个 x=1,2,,L1x = 1, 2, \ldots, L - 1,在距离木材左端 xx 米的位置有一个标记,称为标记 xx

    给定 QQ 个查询,第 ii 个查询表示为一对数字 (ci,xi)(c_i, x_i)。按 ii 的升序处理查询,规则如下:

    • ci=1c_i = 1:在标记 xix_i 处将木材切割成两段。
    • ci=2c_i = 2:选择包含标记 xix_i 的那段木材,并输出其长度。

    保证:对于所有查询(无论 ci=1c_i = 122),在处理时标记 xix_i 处均未被切割过。

    输入格式

    • 第一行为 LLQQ
    • 接下来 QQ 行,每行两个整数 cic_ixix_i

    输出格式

    对于每个 ci=2c_i = 2 的查询,输出包含 xix_i 的木材段长度。

    样例

    5 3
    2 2
    1 3
    2 2
    
    5
    3
    
    5 3
    1 2
    1 4
    2 3
    
    2
    

    提示

    样例1解释

    • 初始木材长度为 5,标记 2 所在的段长度为 5。
    • 在标记 3 处切割后,标记 2 所在的段变为左段(长度 3)。

    数据范围

    • 1L1091 \leq L \leq 10^9
    • 1Q2×1051 \leq Q \leq 2 \times 10^5
    • ci{1,2}(1iQ)c_i \in \{1, 2\} \quad (1 \leq i \leq Q)
    • 1xiL1(1iQ)1 \leq x_i \leq L - 1 \quad (1 \leq i \leq Q)
    • 唯一性保证:对于任意 ii,不存在 j<ij < i 使得 (cj,xj)=(1,xi)(c_j, x_j) = (1, x_i)(即每个标记最多被切割一次)。
    • 所有输入值为整数。
    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » Cutting Woods