CF1513D.GCD and MST

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array aa of nn ( n2n \geq 2 ) positive integers and an integer pp . Consider an undirected weighted graph of nn vertices numbered from 11 to nn for which the edges between the vertices ii and jj ( i<ji<j ) are added in the following manner:

  • If gcd(ai,ai+1,ai+2,,aj)=min(ai,ai+1,ai+2,,aj)gcd(a_i, a_{i+1}, a_{i+2}, \dots, a_{j}) = min(a_i, a_{i+1}, a_{i+2}, \dots, a_j) , then there is an edge of weight min(ai,ai+1,ai+2,,aj)min(a_i, a_{i+1}, a_{i+2}, \dots, a_j) between ii and jj .
  • If i+1=ji+1=j , then there is an edge of weight pp between ii and jj .

Here gcd(x,y,)gcd(x, y, \ldots) denotes the greatest common divisor (GCD) of integers xx , yy , ....

Note that there could be multiple edges between ii and jj if both of the above conditions are true, and if both the conditions fail for ii and jj , 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 tt ( 1t1041 \leq t \leq 10^4 ) — the number of test cases.

The first line of each test case contains two integers nn ( 2n21052 \leq n \leq 2 \cdot 10^5 ) and pp ( 1p1091 \leq p \leq 10^9 ) — the number of nodes and the parameter pp .

The second line contains nn integers a1,a2,a3,,ana_1, a_2, a_3, \dots, a_n ( 1ai1091 \leq a_i \leq 10^9 ).

It is guaranteed that the sum of nn over all test cases does not exceed 21052 \cdot 10^5 .

输出格式

Output tt 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

首页