CSP-S 练习题:美丽的集合(ST表、二分查找、数论基础-GCD 的应用)
美丽的集合
题目描述
小 Q 喜欢美丽的集合,她认为的美丽的集合满足以下条件:这个集合的所有数字排序后为一段连续区间,比如 { 6,2,5,3,4},{ 2,1}\{6,2,5,3,4\},\{2,1\}{ 6,2,5,3,4},{ 2,1} 是美丽的集合,{ 7,10}\{7,10\}{ 7,10} 不是美丽的集合。
小 Q 会施展魔法,每次魔法可以选中集合中的两个数 x≠yx\ne yx=y,将 x+y2\frac{x+y}{2}2x+y 塞进集合,(注意塞进的数要是正整数,否则不能塞进去),而通过若干次魔法可能可以让一个集合从不美丽变成美丽。
假如现在有一个序列 aaa,小 Q 首先会把序列中的所有元素塞进集合,再施展若干次魔法,希望这个集合能美丽。需要注意:如果一个相同的整数多次出现在序列中,小 Q 只会添加进集合一次。
小 Q 收到一个序列 { bn}\{b_n\}{ bn},她现在想知道有多少个整数对 (l,r),1≤l≤r≤n(l,r),1\le l\le r\le n(l,r),1≤l≤r≤n,满足子序列 bl∼rb_{l\sim r}bl∼r 能被变成美丽的集合。
输入格式
第一行包含一个整数 nnn,表示序列的长度。
第二行有 nnn 个整数 a1∼ana_1\sim a_na1∼a
