题目链接: https://codeforces.com/contest/1471/problem/B
思路:
这个题关键点在与理解题目、
代码:
import java.util.Scanner;
public class 奇异清单 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
int m = sc.nextInt();//数据量
int v = sc.nextInt();//除数
long res = 0;//结果
int[] arr = new int[m];
for (int i1 = 0; i1 < m; i1++) {
arr[i1] = sc.nextInt();
res += arr[i1];
}
int p = v;//倍率
boolean flag = true;
while (flag) {
for (int i1 = 0; i1 < m; i1++) {
if (arr[i1] % v == 0) {
int a = arr[i1] / v;
res += ((long) a * p);
arr[i1] = a;
} else {
flag = false;
break;
}
}
p *= v;
}
System.out.println(res);
}
}
}