AT_joisc2019_i.Bitaro, who Leaps through Time

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

比弗兰由 NN 个城市组成,编号为 11 到 NN。这些城市之间有 N−1N-1 条道路连接。第 ii 条道路(1≤i≤N−11 \le i \le N-1)双向连接城市 ii 和城市 i+1i+1。在比弗兰,时间单位称为 Byou。每一天有 10910^9 Byou。一天开始后的第 xx Byou 时刻(0≤x<1090 \le x < 10^9)被称为时间 xx。通过任意一条道路都需要 11 Byou,而第 ii 条道路每天只能在时间 LiL_i 到时间 RiR_i 之间通过。具体来说,要通过第 ii 条道路,必须在时间 xx 离开城市 ii 或城市 i+1i+1(满足 Li≤x≤Ri−1L_i \le x \le R_i-1),并在时间 x+1x+1 抵达另一个城市。

Bitaro 曾是比弗兰的普通居民,但由于常常迟到,他终于获得了穿越时间的能力。每使用一次该技能,可以回到 11 Byou 之前。他不能回到前一天:如果在时间 00 到 11 之间使用该技能,只会回到本日的时间 00。他只能在城市中使用该技能,使用时位置不会改变。

使用技能会让 Bitaro 感到疲惫。为了找到更少使用技能的旅行方法,他决定进行一系列共 QQ 步的推演实验。在第 jj 步实验(1≤j≤Q1 \le j \le Q)中,他将进行以下操作之一:

  • 修改第 PjP_j 条道路可以通行的时间区间。修改后,第 PjP_j 条道路只能在 SjS_j 到 EjE_j 之间通过。

  • 假如他在一天中的时间 BjB_j 处于城市 AjA_j,计算他在当天时间 DjD_j 到达城市 CjC_j 时,最少需要用多少次技能。

他想知道全部推演实验的结果。

请编写程序,给出比弗兰的城市数量、道路信息和推演实验内容,计算推演实验的结果。

输入格式

从标准输入读取以下数据。输入中的所有值均为整数。

N QN\ Q
L1 R1L_1\ R_1
⋮\vdots
LN−1 RN−1L_{N-1}\ R_{N-1}
(第 1 条查询)
⋮\vdots
(第 QQ 条查询)

其中每条查询由以空格分隔的 44 或 55 个整数组成。令 TjT_j 表示其第一个整数,则

  • 若 Tj=1T_j = 1,该查询由 44 个整数 Tj,Pj,Sj,EjT_j, P_j, S_j, E_j 组成,表示在第 jj 步将第 PjP_j 条路可通过时间区间改为 SjS_j 到 EjE_j。

  • 若 Tj=2T_j = 2,该查询由 55 个整数 Tj,Aj,Bj,Cj,DjT_j, A_j, B_j, C_j, D_j 组成,表示在第 jj 步假设当前处于城市 AjA_j、时间 BjB_j,要求在当天时间 DjD_j 到达城市 CjC_j 最少需要使用技能的次数。

输出格式

对于每一次 Tj=2T_j = 2 类型的查询,输出一行答案,依次表示最少使用技能次数。

输入输出样例

  • 输入#1

    3 3
    0 5
    0 5
    2 1 3 3 3
    1 2 0 1
    2 1 3 3 3
    

    输出#1

    2
    4
    
  • 输入#2

    5 5
    3 5
    4 8
    2 6
    5 10
    2 5 3 1 10
    2 2 6 5 6
    1 3 4 6
    2 3 3 4 3
    2 4 5 1 5
    

    输出#2

    4
    3
    2
    3
    
  • 输入#3

    7 7
    112103440 659752416
    86280800 902409187
    104535475 965602300
    198700180 945132880
    137957976 501365807
    257419446 565237610
    2 4 646977260 7 915994878
    2 1 221570340 6 606208433
    2 7 948545948 4 604273995
    2 7 247791098 5 944822313
    2 7 250362511 2 50167280
    2 3 364109400 4 555412865
    2 7 33882587 7 186961394
    

    输出#3

    145611455
    0
    447180143
    0
    207252171
    0
    0
    
  • 输入#4

    7 7
    535825574 705426142
    964175291 996597835
    481817391 649559926
    4519006 410772613
    74521477 274584126
    256535565 899389890
    1 6 511428966 602601933
    1 1 69986642 201421232
    2 3 636443425 4 625975977
    1 6 235225515 405336399
    2 3 866680458 3 701821857
    1 6 180606048 900533151
    1 6 612564160 720179605
    

    输出#4

    10467449
    164858601
    

说明/提示

【样例解释 #1】

在第 1 步推演实验中,Bitaro 从城市 11 用 11 Byou 移动到城市 22,然后再用 11 Byou 从城市 22 移动到城市 33,最终在时间 55 抵达城市 33。因此,如果要在时间 33 抵达 33 号城市,需要在到达后使用技能两次。

在第 2 步实验中,第 2 条道路的可通过时间区间改为 00 到 11。

在第 3 步实验中,Bitaro从城市 11 用 11 Byou 到达城市 22(时间 44),再用技能 44 次回溯到时间 00,再用 11 Byou移动到城市 33,等待 22 Byou 至时间 33 抵达。

【数据范围】

  • 1≤N≤300 0001\le N\le 300\,000。
  • 1≤Q≤300 0001\le Q\le 300\,000。
  • 0≤Li<Ri<109(1≤i≤N−1)0\le L_i < R_i < 10^9 (1\le i\le N-1)。
  • 1≤Tj≤2(1≤j≤Q)1\le T_j\le 2 (1\le j\le Q)。
  • 1≤Pj≤N−1(1≤j≤Q,Tj=1)1\le P_j\le N-1 (1\le j\le Q,T_j = 1)。
  • 0≤Sj<Ej<109(1≤j≤Q,Tj=1)0\le S_j < E_j < 10^9 (1\le j\le Q,T_j = 1)。
  • 1≤Aj≤N(1≤j≤Q,Tj=2)1\le A_j\le N (1\le j\le Q,T_j = 2)。
  • 0≤Bj<109(1≤j≤Q,Tj=2)0\le B_j < 10^9 (1\le j\le Q,T_j = 2)。
  • 1≤Cj≤N(1≤j≤Q,Tj=2)1\le C_j\le N (1\le j\le Q,T_j = 2)。
  • 0≤Dj<109(1≤j≤Q,Tj=2)0\le D_j < 10^9 (1\le j\le Q,T_j = 2)。

1.(44 分)N≤1000,Q≤1000N\le 1000, Q\le 1000。
2.(3030 分)所有 Tj=2(1≤j≤Q)T_j = 2 (1\le j\le Q)。
3.(6666 分)无其他限制。

由 ChatGPT 5 翻译

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

首页