Codeforces Round 671 Div 1 C(阵列的最终威力)

时间:2016-05-18 07:20:05

标签: algorithm segment-tree

Codeforces 671 Div 1 C(阵列的最终威胁)

  

让vi为b1,b2,b3 ...... bk。请注意,我们的l - r必须至少覆盖   k - 1这个索引。 l必须小于或等于b2。

我能够理解解决方案的第一部分,但有人可以解释上述声明。

editorial link

2 个答案:

答案 0 :(得分:2)

因为如果(l-r)涵盖的k-1索引少于x,那么ybx必须by[l, r]范围i | a[bx], i | a[by],因为gcd(a[bx], a[by]) >= i,然后是next,这是不对的,因为您正在将ii-1更新为(l-r)

由于k-1至少涵盖b1, ..., bk的{​​{1}}个元素,因此l必须小于或等于b2

答案 1 :(得分:0)

定义F(l,r)值表示A [1:n]子序列。

A [1 ....(l-1),(r + 1)....]计算最大gcd(A [i],A [j])

Sum =ΣΣF(i,j)(i!= j)