P1032金缕曲goldknot

时间限制 2500 ms内存限制 512 MiB通过率 —
显示算法标签强连通分量 · 拓扑 DP · 图论

【题目背景】

花庭中的道路修好以后,并肩散步渐渐成为二人每天最安静的时光。某个晚霞落满长廊的傍晚,ESC 问 Ehundategh 是否愿意陪 ESC 看看花庭之外的世界,他便在共同启程的前夜写下这阕词:

《金缕曲·对情》

千筝扶风起。稚心芳、浅驻未央,寄情留地。几番寂寂夜笙曲,泪浸枕没满衣。又复年,惊梦往醉。难触烬星万般遥,魂悠悠、愿渡银河距。九泉誓,君须记。

既忍千夫鞭辟里。再付他、点点痴妄,缄入深邸。难启陈酿对天饮,又封坛以重许。欲盼那,缘结命理。仍惧双意来晚矣,是何处、牧笛吹默语。还百年,就花取。

ESC 读完后,将一缕金线分别系在两人的行囊上。ESC 告诉 Ehundategh,这一次不必独自横渡银河,从启程到归来,他们都会走在同一段旅途中。

【题目描述】

二人的旅途从驿站 ss 开始。沿途共有 nn 处驿站,编号为 1n1\sim n,另有 mm 条只能沿指定方向通行的道路。第 ii 条道路从驿站 uiu_i 通往驿站 viv_i,最初散落着 wiw_i 缕金线。道路可以连接同一座驿站,也可能有多条道路连接同一对驿站。

每当二人经过一条道路时,ESC 都会收起道路上当时所有的金线,Ehundategh 则把这段行程写进共同的纪念册。随后,这条道路会进行一次回织。若这是它第 jj 次被经过,那么回织出的金线比经过前少 jj 缕,且金线数量不会小于 00

因此,一条最初有 ww 缕金线的道路在第一次经过时可以取得 ww 缕,第二次可以取得 w1w-1 缕,第三次可以取得 w12w-1-2 缕,依此类推。当这个数量不再为正时,之后仍可经过该道路,但无法再取得金线。

从驿站 ss 出发后,二人可以任意选择之后经过的道路,也可以重复经过驿站和道路。他们希望在不必分开的旅途中收集尽可能多的金线,再将这些金线一同编入纪念册。

请你求出他们最多能够取得多少缕金线。

【输入格式】

从文件 goldknot.in\textbf{\textit{goldknot.in}} 中读入数据。

本题包含多组测试数据。

输入的第一行包含两个非负整数 c,Tc,T,分别表示测试点编号与测试数据组数。c=0c=0 表示该测试点为样例。

接下来依次输入每组测试数据。对于每组测试数据:

第一行包含两个整数 n,mn,m,分别表示驿站数和道路数。

接下来 mm 行,每行包含三个整数 ui,vi,wiu_i,v_i,w_i,表示一条从驿站 uiu_i 通往驿站 viv_i、最初有 wiw_i 缕金线的道路。

最后一行一个整数 ss,表示二人出发的驿站。

【输出格式】

输出到文件 goldknot.out\textbf{\textit{goldknot.out}} 中。

对于每组测试数据,输出一行一个整数,表示最多能够取得的金线数量。

【样例 1 输入】

0 22 21 2 42 1 413 31 2 42 3 31 3 81

【样例 1 输出】

168

【说明/提示】

【样例 1 解释】

第一组测试数据中,二人可以在两个驿站之间往返,依次取得 4,4,3,3,1,14,4,3,3,1,1 缕金线,共取得 1616 缕。

第二组测试数据中,直接沿道路从驿站 11 前往驿站 33,可以取得 88 缕金线。

【样例 2】

见选手目录下的 goldknot/goldknot2.in\textbf{\textit{goldknot/goldknot2.in}}goldknot/goldknot2.ans\textbf{\textit{goldknot/goldknot2.ans}}

该组样例符合测试点 141\sim 4 的数据范围。

【样例 3】

见选手目录下的 goldknot/goldknot3.in\textbf{\textit{goldknot/goldknot3.in}}goldknot/goldknot3.ans\textbf{\textit{goldknot/goldknot3.ans}}

该组样例符合测试点 585\sim 8 的数据范围。

【样例 4】

见选手目录下的 goldknot/goldknot4.in\textbf{\textit{goldknot/goldknot4.in}}goldknot/goldknot4.ans\textbf{\textit{goldknot/goldknot4.ans}}

该组样例符合测试点 9129\sim 12 的数据范围。

【样例 5】

见选手目录下的 goldknot/goldknot5.in\textbf{\textit{goldknot/goldknot5.in}}goldknot/goldknot5.ans\textbf{\textit{goldknot/goldknot5.ans}}

该组样例符合测试点 131513\sim 15 的数据范围。

【样例 6】

见选手目录下的 goldknot/goldknot6.in\textbf{\textit{goldknot/goldknot6.in}}goldknot/goldknot6.ans\textbf{\textit{goldknot/goldknot6.ans}}

该组样例符合测试点 162016\sim 20 的数据范围。

【数据范围】

对于 100%100\% 的数据,保证 1T101\leq T\leq 101n1061\leq n\leq 10^60m1060\leq m\leq 10^61ui,vi,sn1\leq u_i,v_i,s\leq n0wi1080\leq w_i\leq 10^8。单个测试点内所有测试数据的 nn 之和不超过 10610^6mm 之和不超过 10610^6

测试点编号n,mn,mwiw_i特殊性质
141\sim 48\leq 810\leq 10
585\sim 82×105\leq 2\times 10^5108\leq 10^8A
9129\sim 122×105\leq 2\times 10^5108\leq 10^8B
131513\sim 155×105\leq 5\times 10^5108\leq 10^8C
162016\sim 20106\leq 10^6108\leq 10^8

特殊性质 A:保证给出的有向道路不存在有向环。

特殊性质 B:保证任意两座驿站之间都可以沿若干条道路互相到达。

特殊性质 C:将所有能够互相到达的驿站分别合并后,设剩余 pp 个驿站。可以将它们依次编号为 1p1\sim p,使得对于每个 1i<p1\leq i<p,都至少有一条从驿站 ii 通往驿站 i+1i+1 的道路,且所有连接不同合并驿站的道路均为从驿站 ii 通往驿站 i+1i+1 的道路。

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解