题目名称 | 3073. [POJ 2288]岛和桥 |
---|---|
输入输出 | island_bridge.in/out |
难度等级 | ★★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | syzhaoss 于2018-12-20加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:0, 提交:0, 通过率:0% | |||
关于 岛和桥 的近10条评论(全部评论) |
---|
给定一个地图,地图中包含很多岛和连接它们的桥。
汉密尔顿路径是指沿着桥访问每个岛屿恰好一次的路径。
在我们的地图上的每个岛都具有一个权值,它是一个正整数。
假设一共有 n 个岛,第 i 个岛的权值为Vi。
现在规定一个汉密尔顿路径的总价值为以下三个价值的和:
1.每个岛屿的权值之和。
2.汉密尔顿路径中,每一条边连接的相邻岛屿的权值乘积之和。
3.如果在汉密尔顿路径中存在相邻的三个岛屿可以构成环形,则将所有满足条件的相邻岛屿三元组权值的乘积相加求和。
任务一:请你找出汉密尔顿路径的总价值最大可以为多少。
任务二:请你找出满足最大总价值的汉密尔顿路径共有多少条。
第一行包含整数 q,表示共有 q 组测试数据。
每组数据第一行包含两个整数 n,m,分别表示小岛数和桥数。
第二行包含 n 个不超过100的正整数,表示每个岛屿的权值。
接下来 m 行,每行包含两个整数 a,b,表示岛 a 和岛 b 之间存在一个双向桥。
岛屿的编号从 1 到 n。
每组数据输出一行,两个整数,分别表示汉密尔顿路径的最大总价值,以及满足最大总价值的汉密尔顿路径条数。
如果不存在汉密尔顿路径,则输出0 0。
注意:将一条路径按相反的顺序输出而成的路径,视为与原路径是同一条路径。例如 1-2-3 和 3-2-1 为同一条路径。
2 3 3 2 2 2 1 2 2 3 3 1 4 6 1 2 3 4 1 2 1 3 1 4 2 3 2 4 3 4
22 3 69 1
$1\leq n\leq 13,1\leq m\leq \frac{n(n-1)}{2}$