luogu#P8426. [JOI Open 2022] 放学路(School Road)

[JOI Open 2022] 放学路(School Road)

题目背景

译自 JOI Open 2022 T3. 通学路 / School Road


在洛谷上,本题测试点和子任务配置可能导致评测结果页面难以理解。具体地,将评测结果页面中的子任务编号 xx 转为二进制后,从低到高第 ii 位为 11 就表示子任务内所有测试点均满足题目中的子任务 ii 的限制。

题目描述

河狸国由 NN 座城市组成,编号为 1N1 \sim N。共有 MM 条道路连接这些城市,道路编号为 1M1 \sim M。道路 ii1iM1 \le i \le M)双向连接城市 AiA_iBiB_i,并且道路 ii 的长度为 CiC_i。保证经过一定数量的道路,均可以从任意一座城市到达任意其他城市。

Bitaro 是一只住在城市 11 的河狸。他要去城市 NN 上学。他上学通常都走一样的路线。他的上学路线满足如下条件。

  • LL 为从城市 11 到城市 NN 的最短距离。
  • Bitaro 的上学路是一条连接城市 11 和城市 NN 且长度为 LL 的路径。

因为今天天气好,Bitaro 决定绕路回家。也就是说,他会选择一条从城市 NN 到城市 11 且长度大于 LL 的路径。因为 Bitaro 很容易厌倦,他不想经过同一座城市多于一次。因此,当他绕远路回家时,不允许经过同一座城市多于一次,并且不允许走回头路。

给定河狸国的城市和道路的信息,写一个程序确定是否存在一条从学校到 Bitaro 的家的远路。

赛时提醒:Bitaro 不允许在回家途中经过相同的城市超过一次,但是并不禁止经过在他上学路线中经过的城市。

输入格式

第一行,两个正整数 N,MN, M

接下来 MM 行,第 ii 行三个正整数 Ai,Bi,CiA_i, B_i, C_i

输出格式

输出一行,一个数。如果存在一条到 Bitaro 家的,长度大于 LL 且不经过同一座城市多于一次的路径,输出 11,否则输出 00

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

0

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

1

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

0

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

1

12 17
2 4 656247308
4 6 106088453
1 5 754343261
9 12 497827261
3 8 759830309
3 4 61084725
1 6 324702188
3 6 415317430
7 12 846175092
5 8 278621369
1 10 891247646
10 12 755236904
6 8 511967203
5 6 597197970
1 7 800309458
7 9 348347831
10 11 134217757

0

提示

【样例解释 #1】

在这组样例中,从城市 11(Bitaro 家)到城市 44(学校)的最短距离是 55

有两条到 Bitaro 家并且不经过同一座城市多于一次的路径。

  • 按顺序经过道路 313 \to 1,长度为 55 的路径,按 4214 \to 2 \to 1 的顺序经过城市。
  • 按顺序经过道路 424 \to 2,长度为 55 的路径,按 4314 \to 3 \to 1 的顺序经过城市。

因为不存在到 Bitaro 家的,长度大于 55 且不经过同一座城市多于一次的路径,因此输出 00

这组样例满足所有子任务的限制。


【样例解释 #2】

在这组样例中,从城市 11(Bitaro 家)到城市 44(学校)的最短距离是 55

有两条到 Bitaro 家并且不经过同一座城市多于一次的路径。

  • 按顺序经过道路 313 \to 1,长度为 55 的路径,按 4214 \to 2 \to 1 的顺序经过城市。
  • 按顺序经过道路 424 \to 2,长度为 66 的路径,按 4314 \to 3 \to 1 的顺序经过城市。

因为存在到 Bitaro 家的,长度大于 55 且不经过同一座城市多于一次的路径,因此输出 11

这组样例满足所有子任务的限制。


【样例解释 #3】

这组样例满足子任务 1、2、3、5 的限制。


【样例解释 #4】

这组样例满足所有子任务的限制。


【样例解释 #5】

这组样例满足子任务 1、2、3、5 的限制。


【数据范围】

本题采用捆绑测试。

  • 子任务 1(7 分):M40M \le 40
  • 子任务 2(15 分):N18N \le 18
  • 子任务 3(23 分):MN13M - N \le 13
  • 子任务 4(35 分):对于任意三座不同的城市 a,b,ca, b, c,均存在一条从城市 aa 到城市 cc 且不经过城市 bb 的路径。
  • 子任务 5(20 分):无特殊限制。

对于所有数据,满足 2N1052 \le N \le {10}^51M2×1051 \le M \le 2 \times {10}^51Ai<BiN1 \le A_i < B_i \le N1Ci1091 \le C_i \le {10}^9,保证经过一定数量的道路,均可以从任意一个城市到达任意其他城市。