比赛 |
4043级2023省选练习赛3 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
吉夫特 |
最终得分 |
100 |
用户昵称 |
yuan |
运行时间 |
1.634 s |
代码语言 |
C++ |
内存使用 |
2.31 MiB |
提交时间 |
2023-03-08 19:44:44 |
显示代码纯文本
//code from: https://loj.ac/s/1679079
#include <bits/stdc++.h>
using namespace std;
const int maxn = 211985 + 5;
const int mod = 1000000007;
void amod(int &x, int y) {
x = x + y >= mod ? x + y - mod : x + y;
}
int n, a[maxn], f[1 << 18];
int main() {
freopen("2017gift.in", "r", stdin);
freopen("2017gift.out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for(int i = 1; i <= n; i++) {
cin >> a[i];
}
reverse(a + 1, a + 1 + n);
int ans = mod - n;
for(int i = 1; i <= n; i++) {
f[a[i]] = 1;
for(int j = (a[i] - 1) & a[i]; j; j = (j - 1) & a[i]) {
amod(f[a[i]], f[j]);
}
amod(ans, f[a[i]]);
}
cout << ans << '\n';
return 0;
}