AB签到题
C-邻合 https://ac.nowcoder.com/acm/contest/128672/C

这道题看完后可以java知道gcd方法: BigInteger 类的BigInteger .gcd(BigInteger)方法

坑点:
需要预处理数字1的情况,因为数字1和任意正整数都是互质的,所有需要将1先行修改,改成什么呢?
我们可以注意到数字0和任何数都不互质,so,改成0,我们的预处理就结束了
思路:
1.预处理,数字1改成0,数字1的数量为Num ,结果Y=Num 初始化结果
2.计算相邻的数字是否互质,互质链长度为L,结果Y+=(L/2+1)
3.打印结果
import java.math.BigInteger;
import java.util.Objects;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int ttt = in.nextInt();
while (ttt-- > 0) {
int n = in.nextInt();
int y = 0;
boolean[] dp = new boolean[n];
BigInteger[] x = new BigInteger[n];
x[0] = BigInteger.valueOf(in.nextInt());
for (int i = 1; i < n; i++) {
int aaa = in.nextInt();
if (aaa == 1) {
aaa=0;
y++;
}
x[i] = BigInteger.valueOf(aaa);
if (x[i].gcd(x[i - 1]).equals(BigInteger.valueOf(1))) {
dp[i] = true;
y++;
if (dp[i - 1]) {
y--;
dp[i]=false;
}
}
}
System.out.println(y);
}
}
}
D-对和 https://ac.nowcoder.com/acm/contest/128672/D



232



被折叠的 条评论
为什么被折叠?



