直接暴力,或运算只会越来越大
#include <cstdio> #include <cstring> using namespace std; #define N 100005 int a[N]; int main() { int n,m,cas,i,j,num,v; scanf("%d",&cas); v=1; while(cas--) { scanf("%d%d",&n,&m); for(i=0;i<n;i++) { scanf("%d",&a[i]); } int sum=0; for(i=0;i<n;i++) { num=a[i]; for(j=i;j<n;j++) { num=num|a[j]; if(num<m) sum++; else break; } } printf("Case #%d: %d ",v++,sum); } return 0; }