题目描述
现在我们知道了一些岛屿,预计连接这些岛屿的桥,一个哈密尔顿路径,就是一条沿着桥梁的路径,经过每个岛屿刚好一次。在我们的地图上,每个岛屿还都有一个相关联的正整数值。如果一条哈密尔顿路径能够使得下面描述的值最大,我们称之为最好的三角哈密尔顿路径。
假设有 n 个岛屿。哈密尔顿路径
C1→C2→…→Cn 的值被计算为 3 部分之和。假设 Vi 是岛 Ci 的价值。第 1 部分,我们把哈密尔顿路径中每个岛屿的 Vi 值加起来。第 2 部分,对于路径中的每条边 Ci→Ci+1 ,我们加上乘积 Vi×Vi+1 。第 3 部分,当路径中的三个连续的岛屿 Ci , Ci+1 , Ci+2 在地图中形成一个三角形时,即 Ci 和 Ci+2 之间有桥,我们加上乘积 Vi×Vi+1×Vi+2 。但是可能有有不止一个最好的三角形哈密尔顿路径; 你的第二个任务是找到这样的路径的数量。
输入格式 1775.in
输入文件的第一行以 q (
q≤20 )开头,即测试数据组数。每个测试用例以两个整数 n 和m 开始,分别是岛数和桥数。下一行包含 n 个正整数,第i 个数字是岛 i 的Vi 值,每个值不超过 100。以下 m 行的格式为xy ,表示岛 x 和岛y 之间有一个(双向)桥。岛从 1 到