一道水题
但是也不能用太水的方法来做
我的做法是一直或下去直到不能再或,加上这段距离
代码如下:
#include <cstdio>
#include <iostream>
#include <algorithm>
#define MAXN 101000
#define LL long long
using namespace std;
LL a[MAXN], tmp, ans, n, m;
int main(void) {
int T, i, j;
scanf("%d", &T);
for(int t=1; t<=T; ++t) {
scanf("%lld%lld", &n, &m);
for(i=0; i<n; ++i)
scanf("%lld", &a[i]);
ans = 0;
for(i=0; i<n; ++i) {
tmp = a[i];
for(j=i; j<n; ++j) {
tmp |= a[j];
if(tmp >= m) {
ans += j-i;
break;
}
}
if(j == n)
ans += j-i;
}
printf("Case #%d: ", t);
cout << ans << endl;
}
return 0;
}