求助两份代码的区别
  • 板块CF1750D Count GCD
  • 楼主fanypcd
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/11/11 17:34
  • 上次更新2023/10/27 03:24:26
查看原帖
求助两份代码的区别
90027
fanypcd楼主2022/11/11 17:34

RT,最开始写了一份 WA on #10

改了改就过了,但是没看出来为什么

int ans = 1;
for(int i = 2; i <= n; i++) {
	if(a[i] != a[i - 1]) {
		ans = 1ll * ans * calc(a[i - 1] / a[i], m / a[i]) % mod;
	}
	else {
		ans = 1ll * ans * (m / a[i]) % mod;
	}
}
int ans = 1, pp = 1;
while(a[pp + 1] == a[1]) {
	ans = 1ll * ans * ((m / a[1]) % mod) % mod;
	pp++;
}
for(int i = pp + 1; i <= n; i++) {
	if(a[i] != a[i - 1]) {
		ans = 1ll * ans * calc(a[i - 1] / a[i], m / a[i]) % mod;
		for(int p = i; p <= n; p++) {
			if(a[p + 1] != a[p]) {
				i = p; break;
			}
			ans = 1ll * ans * ((m / a[i]) % mod) % mod;
		}
	}
}

具体的提交记录:

WA

AC

2022/11/11 17:34
加载中...