题意
给定长度为(n)的环数组({a}),求划分为每块gcd大于(1)
(nle 10^5)
做法
若([s+1,n])与(1)所在块相连
可以看作序列为({gcd(a_{s+1...n}),a_1,s}),通过动态规划统计
若([s,n])与(1)所在块相连,且(gcd(a_{s+1...n})=gcd(a_{s...n})),数组({gcd,1,1,cdots,s-1})的划分可以通过上面得到
故仅需要(O(logV))次重新计算动态规划,通过预处理,每次(O(n))
给定长度为(n)的环数组({a}),求划分为每块gcd大于(1)
(nle 10^5)
若([s+1,n])与(1)所在块相连
可以看作序列为({gcd(a_{s+1...n}),a_1,s}),通过动态规划统计
若([s,n])与(1)所在块相连,且(gcd(a_{s+1...n})=gcd(a_{s...n})),数组({gcd,1,1,cdots,s-1})的划分可以通过上面得到
故仅需要(O(logV))次重新计算动态规划,通过预处理,每次(O(n))