C - Maximize GCD(简单数论)
C - Maximize GCD
給定長度為n,(2≤3×105)n, (2 \le 3 \times 10 ^ 5)n,(2≤3×105)的數(shù)組a,(1≤ai≤3×105)a, (1 \le a_i \le 3 \times 10 ^ 5)a,(1≤ai?≤3×105),一個數(shù)字K,(1≤K≤1018)K, (1 \le K \le 10 ^{18})K,(1≤K≤1018),
我們可以對數(shù)組aaa進(jìn)行最多kkk次操作,每次操作選定一個i,(1≤i≤n)i, (1 \le i \le n)i,(1≤i≤n)使ai+1a_i + 1ai?+1,為數(shù)組最大的可能gcdgcdgcd是多少。
我們設(shè)maxn=max({a1,…,an})maxn = max(\{a_1, \dots, a_n\})maxn=max({a1?,…,an?}),如果最后的答案ansansans大于等于maxnmaxnmaxn,則一定有i∈[1,n],ai=ansi \in [1, n], a_i = ansi∈[1,n],ai?=ans。
否則我們假設(shè)答案為xxx,則判斷是否合法:
∑i=1n?aix?×x?ai\sum_{i = 1} ^{n} \lceil\frac{a_i}{x}\rceil \times x - a_i\\ i=1∑n??xai???×x?ai?
即上面那個式子求和是否小于等于kkk,這個式子可以前綴和,無窮級數(shù)的復(fù)雜度算一下就好了,整體復(fù)雜度最高maxnlog?maxnmaxn \log maxnmaxnlogmaxn。
總結(jié)
以上是生活随笔為你收集整理的C - Maximize GCD(简单数论)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Problem M. Mediocre
- 下一篇: 小鱼易连电脑版_电脑?不,它是随时就绪的