C. Partitioning the Array
题目
文章来源:https://www.toymoban.com/news/detail-806568.html
解题思路
对于两个数 x 、 y x、y x、y,如果 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 则是一种方案文章来源地址https://www.toymoban.com/news/detail-806568.html
代码实现
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;
}
到了这里,关于C. Partitioning the Array的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!