HDU 4737

구 야 의 블 로그, 본 고 는 출처 를 밝 히 지 않 아 도 된다.http://blog.csdn.net/acmmmm/article/details/11692485
비트 나 연산 후의 결 과 는 증가 하거나 변 하지 않 을 뿐 감소 하지 않 는 다.
#include <stdio.h>

#define N 110010
#define ll int
ll a[N];
int main(){
    int T,Cas=1;scanf("%d",&T);
    int n,m;
    ll i,j,ans;
    while(T--)
    {
        scanf("%d %d",&n,&m);
        for(i=0;i<n;i++)scanf("%d",&a[i]);
        ans=0;
        for(i=0;i<n;i++)
        {
            if(a[i]<m)ans++;
            ll yi=a[i];
            for(j=i+1;j<n;j++)
            {
                yi|=a[j];
                if(yi<m)ans++;
                else break;
            }
        }
        printf("Case #%d: %d
",Cas++,ans); } return 0; }

좋은 웹페이지 즐겨찾기