题目背景
有没有发现少了什么?
我们的 miku 决定出门逛街了。但是好巧不巧的就是她家里的装饰物少的可怜,并且只有一些数字可以作为装饰。
但是 miku 发现如果有若干个装饰物组成的数集 A,那么 A 的子集 f(A) 是最好看的(尽管不知道为什么)。所以就有了这道题。
但是因为看到了标题,所以聪明的你应该知道 miku 要去哪里了(误)。
题目描述
给定不重集合 A,定义其 装饰子集
f(A)={a∈A∣∀b∈A−{a},a∣b=b}
这里的 “|” 表示按位或;这里 b∈A−{a} 表示 b∈A 且 b=a。
miku 有一个长度为 n 的正整数序列 ai。你要给这个序列连续地划分为若干个(至少一个)连续子串。要求这些连续子串元素所组成的不重集合的 装饰子集 相同。
求方案数对 109+7 取模。
输入格式
第一行一个正整数表示 n。
接下来长度为 n 的正整数序列表示 ai。
输出格式
一行一个正整数表示答案。
10
1 2 3 4 5 5 4 3 2 1
2
9
1 2 2 1 1 1 2 2 1
16
提示
【样例#1解释】 可以证明,两种方法分别是:
[1,2,3,4,5,5,4,3,2,1]
[1,2,3,4,5],[5,4,3,2,1]
这里三个子集所组成的不重集合都是 {1,2,3,4,5}。它们的装饰子集都是 {3,5}。具体说明如下:
- 1:1∣3=3,故不属于。
- 2:2∣3=3,故不属于。
- 3:3∣1=3,3∣2=3,3∣4=7,3∣5=7,故属于。
- 4:4∣5=5,故不属于。
- 5:5∣1=5,5∣2=7,5∣3=7,5∣4=5,故属于。
本题采用捆绑测试
- subtask1(5pts):n≤10。
- subtask2(10pts):ai≤7。
- subtask3(20pts):ai=2a+2b。其中 a=b。
- subtask4(20pts):ai=2a+2b。其中不保证 a=b。
- subtask5(10pts): 保证 ai 随机生成。
- subtask6(35pts): 无特殊限制。时限为 3s。
对于 100% 的数据,保证 1≤n≤3×106,0≤ai≤2×106。