bzoj#P2887. 旅行
旅行
题目描述
为了奖励习得最短路算法的自己,和安慰在与你的比赛中成功爆零的自己,小 Y 决定去旅行。
根据导游的解释,旅行的地图是一个无向连通图,可以看作两部分:大地图和小地图。在大地图中,共有 个点, 条边,其中宾馆在点 ,小 Y 固定从宾馆开始旅行,并在旅行后回到宾馆。
对于大地图中的每条边的两个端点 和 ,对应着某个小地图中的两个点 和 。经过大地图中的边 的过程可以这么描述,从大地图中的 点到达小地图中的 点,通过小地图再到 点,然后回到 点。也就是说,大地图中的一条边是一个小地图。
坑爹的是,由于造路的人偷工减料,导致所有的小地图都是相同的,且大地图中的每一个点,都对应着小地图中的同一个点(可能出现大地图中不同点对应小地图中同一个点的情况)。
不过,优美的是,在小地图中,你总能找到一个点,使得从这个点开始,能毫不遗漏又毫不重复地走完所有的边。
通过上述描述,就构成了一个全局图(图套图?)。在全局图中,两条边被认为是相同的情况只有:两条边是大地图的同一条边对应的小地图中的同一条边。
小 Y 表示他对大地图、小地图什么的表示毫无兴趣。他只想好好地旅行。但是,经过相同的道路会让他感到很无趣。所以,每当他经过一条乐趣值为 的边时,总乐趣值加上 ,并且这条边的乐趣值会变为 。
但是小 Y 不知道怎么样走才能使自己最快乐,即总乐趣值最高。所以他想请你帮他算一下,最高的总乐趣值。
输入格式
第一行四个正整数 分别表示大地图中的点数和边数,小地图中的点数和边数。
接下来一行 个整数,第 个整数表示大地图中编号为 的点对应在小地图中的点的编号。
接下来 行,每行两个整数 。表示大地图中有一条编号为 的点到编号为 的点的边。
接下来 行,每行三个整数 。表示小地图中有一条编号为 的点到编号为 的点的边,且初始乐趣值为 。
输出格式
一行一个整数表示最大的总乐趣值。
4 3 3 3
1 2 1 1
1 2
2 3
2 4
1 2 1
2 3 1
1 3 1
9
数据规模与约定
对于 的数据,,,,。
输入数据保证:
- 大地图和小地图中无自环;
- 大地图中点的编号为 到 ,小地图中点的编号为 到 ;
- 对于大地图中的任意一条边 ,都有点 在小地图中对应着不同的点。