CF1513D.GCD and MST
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an array a of n ( n≥2 ) positive integers and an integer p . Consider an undirected weighted graph of n vertices numbered from 1 to n for which the edges between the vertices i and j ( i<j ) are added in the following manner:
- If gcd(ai,ai+1,ai+2,…,aj)=min(ai,ai+1,ai+2,…,aj) , then there is an edge of weight min(ai,ai+1,ai+2,…,aj) between i and j .
- If i+1=j , then there is an edge of weight p between i and j .
Here gcd(x,y,…) denotes the greatest common divisor (GCD) of integers x , y , ....
Note that there could be multiple edges between i and j if both of the above conditions are true, and if both the conditions fail for i and j , then there is no edge between these vertices.
The goal is to find the weight of the minimum spanning tree of this graph.
输入格式
The first line contains a single integer t ( 1≤t≤104 ) — the number of test cases.
The first line of each test case contains two integers n ( 2≤n≤2⋅105 ) and p ( 1≤p≤109 ) — the number of nodes and the parameter p .
The second line contains n integers a1,a2,a3,…,an ( 1≤ai≤109 ).
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105 .
输出格式
Output t lines. For each test case print the weight of the corresponding graph.
输入输出样例
输入#1
4 2 5 10 10 2 5 3 3 4 5 5 2 4 9 8 8 5 3 3 6 10 100 9 15
输出#1
5 3 12 46
说明/提示
Here are the graphs for the four test cases of the example (the edges of a possible MST of the graphs are marked pink):
For test case 1
For test case 2
For test case 3
For test case 4