CF1513D.GCD and MST
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
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.
给你一个包含 n(n≥2)个正整数的数组 a 和一个整数 p。考虑一个具有 n 个顶点(编号从 1 到 n)的无向带权图,其顶点 i 与 j(其中 i<j)之间的边按如下方式添加:
- 若 gcd(ai,ai+1,ai+2,…,aj)=min(ai,ai+1,ai+2,…,aj),则在 i 与 j 之间添加一条权重为 min(ai,ai+1,ai+2,…,aj) 的边;
- 若 i+1=j,则在 i 与 j 之间添加一条权重为 p 的边。
此处 gcd(x,y,…) 表示整数 x,y,… 的最大公约数(GCD)。
注意:若上述两个条件对某对 i 和 j 同时成立,则 i 与 j 之间可能存在多条边;若两个条件均不满足,则 i 与 j 之间不存在边。
目标是求该图的最小生成树(MST) 的总权重。
输入格式
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.
第一行包含一个整数 t(1≤t≤104)—— 测试用例的数量。
每个测试用例的第一行包含两个整数 n(2≤n≤2⋅105)和 p(1≤p≤109)—— 节点数量和参数 p。
第二行包含 n 个整数 a1,a2,a3,…,an(1≤ai≤109)。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
Output t lines. For each test case print the weight of the corresponding graph.
输出 t 行。对于每个测试用例,输出对应图的权重。
输入输出样例
输入#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

以下是示例中四个测试用例所对应的图(图中某棵可能的最小生成树(MST)的边被标为粉色):
测试用例 1

测试用例 2

测试用例 3

测试用例 4

输入解题思路,AI测评打分。不知道怎么写?