HDU4737(暴力)

来源:互联网 发布:美工刀片9a图片大全 编辑:程序博客网 时间:2024/04/30 00:35

A Bit Fun

Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1225    Accepted Submission(s): 683


Problem Description
There are n numbers in a array, as a0, a1 ... , an-1, and another number m. We define a function f(i, j) = ai|ai+1|ai+2| ... | aj . Where "|" is the bit-OR operation. (i <= j)
The problem is really simple: please count the number of different pairs of (i, j) where f(i, j) < m.
 


 

Input
The first line has a number T (T <= 50) , indicating the number of test cases.
For each test case, first line contains two numbers n and m.(1 <= n <= 100000, 1 <= m <= 230) Then n numbers come in the second line which is the array a, where 1 <= ai <= 230.
 


 

Output
For every case, you should output "Case #t: " at first, without quotes. The t is the case number starting from 1.
Then follows the answer.
 


 

Sample Input
23 61 3 52 45 4
 


 

Sample Output
Case #1: 4Case #2: 0
 


 

Source
2013 ACM/ICPC Asia Regional Chengdu Online

 

 

T_T,当时比赛看10W个点就没敢瞎写暴力,结果尼玛暴力可以过,坑爹啊啊啊啊!

/*********************** author:crazy_石头* Pro:HDU 4737* algorithm:brute force* Time:156ms* Judge Status:Accepted***********************/#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <queue>#include <vector>#include <algorithm>using namespace std;#define rep(i,h,n) for(int i=(h);i<=(n);i++)#define ms(a,b) memset((a),(b),sizeof(a))#define eps 1e-6#define INF 1<<29#define LL __int64const int maxn=100000+5;const int maxm=200+10;int a[maxn];int main(){    int n,m,test,ii=1,tmp;    scanf("%d",&test);    while(test--)    {         int cnt=0;         scanf("%d%d",&n,&m);         for(int i=0;i<n;i++)         scanf("%d",&a[i]);         for(int i=0;i<n;i++)         {             tmp=a[i];             for(int j=i;j<n;j++)             {                 tmp=tmp|a[j];                 if(tmp<m)                      cnt++;                 else                       break;             }         }         printf("Case #%d: %d\n",ii++,cnt);    }    return 0;}


 

 

 

原创粉丝点击