CF1486E.Paired Payment
提高+/省选-
通过率:0%
时间限制:4.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
There are n cities and m bidirectional roads in the country. The roads in the country form an undirected weighted graph. The graph is not guaranteed to be connected. Each road has it's own parameter w. You can travel through the roads, but the government made a new law: you can only go through two roads at a time (go from city a to city b and then from city b to city c) and you will have to pay (wab+wbc)2 money to go through those roads. Find out whether it is possible to travel from city 1 to every other city t and what's the minimum amount of money you need to get from 1 to t.
该国共有 n 座城市和 m 条双向道路。这些道路构成一个无向带权图。该图不一定连通。每条道路都有其自身的权重参数 w。你可以沿道路通行,但政府颁布了一项新法规:每次出行仅允许连续经过两条道路(即从城市 a 到城市 b,再从城市 b 到城市 c),且通行这两条道路需支付 (wab+wbc)2 的费用。请判断是否可以从城市 1 到达其余每个城市 t,并求出从城市 1 到达城市 t 所需的最少费用。
输入格式
First line contains two integers n, m (2≤n≤105, 1≤m≤min(2n⋅(n−1),2⋅105)).
Next m lines each contain three integers vi, ui, wi (1≤vi,ui≤n, 1≤wi≤50, ui=vi). It's guaranteed that there are no multiple edges, i.e. for any edge (ui,vi) there are no other edges (ui,vi) or (vi,ui).
第一行包含两个整数 n 和 m(2≤n≤105,1≤m≤min(2n⋅(n−1),2⋅105))。
接下来的 m 行,每行包含三个整数 vi、ui、wi(1≤vi,ui≤n,1≤wi≤50,ui=vi)。保证图中不存在重边,即对任意边 (ui,vi),不存在其他边 (ui,vi) 或 (vi,ui)。
输出格式
For every city t print one integer. If there is no correct path between 1 and t output −1. Otherwise print out the minimum amount of money needed to travel from 1 to t.
对于每个城市 t,输出一个整数。如果城市 1 与城市 t 之间不存在合法路径,则输出 −1;否则输出从城市 1 到城市 t 所需的最少金额。
输入输出样例
输入#1
5 6 1 2 3 2 3 4 3 4 5 4 5 6 1 5 1 2 4 2
输出#1
0 98 49 25 114
输入#2
3 2 1 2 1 2 3 2
输出#2
0 -1 9
说明/提示
The graph in the first example looks like this.

In the second example the path from 1 to 3 goes through 2, so the resulting payment is (1+2)2=9.

第一个样例中的图如下所示。

在第二个样例中,从节点 1 到节点 3 的路径经过节点 2,因此最终支付金额为 (1+2)2=9。

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