loj#P3806. 「JOI Open 2022」放学路

「JOI Open 2022」放学路

题目描述

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

河狸国由 NN 个城市组成,编号为 11NN。共有 MM 条道路连接这些城市,道路编号为 11MM。路 i (1iM)i\ (1\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 行,每行三个整数 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

数据范围与提示

对于所有数据,$2\le N\le 10^5,1\le M\le 2\times 10^5,1\le A_i<B_i\le N,1\le C_i\le 10^9$,保证通过一些数量的道路,可以从任意一个城市到达任意其他城市。

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
11 M40M\le 40 77
22 N18N\le 18 1515
33 MN13M-N\le 13 2323
44 对于任意不同的城市 a,b,ca,b,c,存在一条从 aacc 且不经过 bb 的路径 3535
55 无附加限制 2020