题意:
给出了一列数..定义f(i,j)为第i个数开始一次做或运算到最后一个数..问比给定的m小的f(i,j)有多少对...
数据不是很大 暴力可以过
ACcode:
#include <bits/stdc++.h>
#define maxn 100005
int a[maxn];
int main(){
int loop,cnt=1,n,m,ans;
scanf("%d",&loop);
while(loop--){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i)scanf("%d",&a[i]);
ans=0;
for(int i=1;i<=n;++i){
int tmp=a[i];
if(tmp<m)ans++;
for(int j=i+1;j<=n;++j){
tmp|=a[j];
if(tmp<m)
ans++;
else break;
}
}
printf("Case #%d: %d\n",cnt++,ans);
}
return 0;
}