loj#P3038. 「JOISC 2019 Day3」穿越时空 Bitaro
「JOISC 2019 Day3」穿越时空 Bitaro
题目描述
题目译自 JOISC 2019 Day3 T3「時をかけるビ太郎 / Bitaro, who Leaps through Time」
在河狸国,一条路上有 座城市,依次编为 号;连接城市 和城市 的那段路被称为 号路。在河狸国,一天有 秒,依次称为时刻 。从城市 沿路到达与之相邻的城市——城市 或城市 需要 个单位时间。 号路每天在时刻 到时刻 之间开放通行。具体说来,为了通过 号道路,我们必须在满足 的时刻 从城市 或城市 出发,在 时刻到达另一城市。
Bitaro 原本是一位住在河狸国的普通河狸,然而,为了改掉自己迟到的坏习惯,他最终获得了穿越时空的技能。每次使用这个技能,他能回到一秒前。但他不能回到前一天:也就是说,如果他在 时刻与 时刻之间使用技能,他只能回到这一天的 时刻。他只能在城市里使用这个技能。使用这个技能不会改变他的位置。
穿越时空会让 Birato 变累。为了找到能从一个城市到另一个城市且使用技能次数最少的方法,他决定进行一个 步的想象试验。第 步实验是以下两种情况之一:
- 改变 号道路的开放时间,改后 号道路在时刻 到时刻 开放通行;
- 假设时刻 他在城市 ,然后计算在这一天的时刻 他要到达城市 的话至少需要使用多少次技能。
他很想知道实验结果。
输入格式
从标准输入中读入以下数据:
第一行两个正整数 ,意义如题目描述。
接下来 行,每行两个非负整数 ,意义如题目描述。
接下来 行,每行四到五个整数,设 为这 行中每行的第一个数:
- 时,这一行有四个整数 ,意味着第 步实验将 号道路的开放时间改为从 到 ;
- 时,这一行有五个整数 ,意味着第 步实验查询假设在时刻 时 Bitaro 在城市 ,他要在时刻 到达城市 最少的使用技能次数。
输出格式
对于每个 的询问,向标准输出输出一个整数,表示答案。
3 3
0 5
0 5
2 1 3 3 3
1 2 0 1
2 1 3 3 3
2
4
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
4
3
2
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
145611455
0
447180143
0
207252171
0
0
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
10467449
164858601
数据范围与提示
对于全部数据:
- ;
- ;
- 当 时,$1\le P_j\le N-1,0\le S_j\lt E_j\le 10^9-1\ (1\le j\le Q)$;
- 当 时,$1\le A_j,C_j\le N,0\le B_j,D_j\le 10^9-1\ (1\le j\le Q)$。
子任务及附加条件如下:
- 子任务 ( 分):;
- 子任务 ( 分):对于实验中所有步骤,;
- 子任务 ( 分):无附加限制。