C. Partitioning the Array

发布时间:2024年01月18日

C. Partitioning the Array

题目

在这里插入图片描述

解题思路

对于两个数 x 、 y x、y xy,如果 x x x mod m m m y y y mod m m m,则有 ( y ? x y - x y?x) ≡ 0 (mod m m m),则 m m m 是 (y - x) 的因数,所有因数的最大公约数非 1 则是一种方案

代码实现

void solve()
{
	int n; cin >> n;
	vector<int> a(n + 1);
	for (int i = 1; i <= n; i++) cin >> a[i];
	ll cnt = 0;
	for (int k = 1; k <= n; k++) {
		if (n % k == 0) {
			int g = 0;
			for (int i = 1; i + k <= n; i++) {
				g = gcd(g,  abs(a[i + k]- a[i]));
			}
			cnt += (g != 1);
		}
	}
	cout << cnt << endl;
}
文章来源:https://blog.csdn.net/m0_73865722/article/details/135676485
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。