AT_wupc2012_5.会場への道
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
题目背景
终于到了比赛的前一天了。为了比赛当天而早做准备,我将找好去比赛会场的路。从我住的小镇到比赛会场所在的镇(早稻田),会经过一些其它的小镇。小镇之间有一些道路连接。如果两个小镇间没有道路连接则不能在这两个小镇间移动。
无论如何我也想在比赛中取得胜利,所以我想保证一定能取胜。我相信能被 4 或 7 整除的数是能够给我带来好运的数。假设出发时的时间为 0 ,而到达会场的时间能够被 4 或 7 整除的话我的心情就会很好。然而,如果到达会场的时间不能被 4 或 7 整除,我就会觉得这次比赛肯定会输。为了在比赛中取得胜利,即使绕很远的路我也要在能被 4 或 7 整除的时间点到达会场。
去会场的移动方法很自由。曾经过的道路再次经过,回到已经去过的小镇或出发的小镇,都是允许的。但是,在一条道路的途中不能折返,在已经到达会场后不能再继续移动。
现在,请求出按满足以上条件的方式移动时,到达会场所用的最短时间。
给出连接 N 个小镇的 M 条道路的情况。每条道路连接不同的两个小镇。在指定时间内可以经由此路双方向移动。我所在的小镇的编号为 0 ,会场所在镇的编号为 N−1 (小镇的编号分别从 0 到 N−1 ),另外出发时的时间为 0 。请编写程序求出:按照到达会场所在小镇的时间能被 4 或 7 整除的方式移动时,最小的到达时间。不过,已经到达过会场便不能再移动。另外,在一条道路的途中不能折返或休息。
输入格式
输入按以下形式:
N M
f1 t1 c1
...
fm tm cm
- 第一行为以空格隔开的两个整数 N(2≤N≤1000) 和 M(1≤M≤min(10000,N×(N−1)/2)) ,分别表示表示小镇数与道路数。
- 第二行到第 M+1 行为各条道路的情况,也就是:该道路所连接的两个小镇的编号 fi 和 ti ,和从该道路一端移动到另一端所花时间 ci 。
- 对于任意 i ,满足 0≤fi≤N−1 且 $ 0 \leq t_i \leq N-1 , f_i ≠ t_i , 1 \leq c_i \leq 100000 $ 。
- 数据保证不会有重边和自环。可能会出现没有任何道路连接的小镇。
输出格式
输出一行:按满足条件的方法移动到会场所花的最小时间。
数据保证一定有解。
部分分
对于 30% 的数据:在以上条件的基础上,保证能够在 500 单位时间内到达会场。
输入输出样例
输入样例1
2 1
0 1 4
输出样例1
4
样例解释1
- 从出发的小镇到目标小镇需要的时间为 4 。合计时间 4 为 4 的倍数,因此满足条件。故答案为 4 。
输入样例2
3 2
0 1 15
1 2 5
输出样例2
20
样例解释2
- 从出发的小镇 0 开始,花费 15 单位时间到达小镇 1 ,从小镇 1 花费 5 单位时间移动到目标小镇 2 。合计时间 20 是 4 的倍数。故满足条件,答案为 20 。
输入样例3
4 3
0 1 1
1 2 1
2 3 1
输出样例3
7
样例解释3

- 从出发的小镇 0 花费 1 单位时间到达小镇 1 ,从小镇 1 花费 1 单位时间到达小镇 2 ,从小镇 2 花费 1 单位时间到达目标小镇 3 。到达的时间为 3 ,而 3 既不是 4 的倍数也不是 7 的倍数。故我们可以在小镇 1 和小镇 2 间反复移动,最后的总时间为 7 。 7 是 7 的倍数。故满足条件,答案为 7 。
输入解题思路,AI测评打分。不知道怎么写?