HDU 4737 A Bit Fun
2013-09-14 17:58
405 查看
This problem is simple too.
The thinking is just enumeration。
But if you can not deal with the details,it is easy to be the TLE。
Problem:
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.
[b]Output
[/b]
For
every case, you should output "Case #t: " at fi
937e
rst, without quotes. The t is the case number starting from 1.
[b]My code :[/b]
ps: Forgive my poor English.......
The thinking is just enumeration。
But if you can not deal with the details,it is easy to be the TLE。
Problem:
A Bit Fun
Problem DescriptionThere 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.
[b]Output
[/b]
For
every case, you should output "Case #t: " at fi
937e
rst, without quotes. The t is the case number starting from 1.
[b]My code :[/b]
#include <stdio.h> #include <stdlib.h> const int size = 1000010; int a[size]; int main() { int t,n,m,s,e,count,f; scanf("%d",&t); for(int i = 0;i < t;i++) { count = 0; scanf("%d%d",&n,&m); for(int j=0;j<n;j++) scanf("%d",&a[j]); for(s=0;s<n;++s) { if(a[s]>m)continue; else { f=a[s]; for(e=s;e<n;++e) { f=f|a[e]; if(f<m)count++; else break; } } } printf("Case #%d: %d\n",i+1,count); } }
ps: Forgive my poor English.......
相关文章推荐
- hdu 4737 A Bit Fun 尺取法
- hdu 4737 A Bit Fun || 2013 ACM/ICPC Asia Regional Chengdu Online || 简单题
- HDU-4737-A Bit Fun-TwoPointer
- HDU 4737 A Bit Fun
- hdu 4737 A Bit Fun 暴力
- hdu 4737 A Bit Fun
- HDU 4737 A Bit Fun 水暴力
- hdu 4737 A Bit Fun 数列(2013 ACM/ICPC Asia Regional Chengdu Online 1010)
- HDU - 4737 A Bit Fun 暴力水题
- hdu 4737 A Bit Fun
- hdu 4737 A Bit Fun
- hdu 4737 A Bit Fun 2013成都赛区网络赛最后一题
- HDU-4737 A Bit Fun 维护
- 单调性优化-hdu-4737-A Bit Fun
- hdu 4737 A Bit Fun
- HDU 4737 A Bit Fun 2013成都 网络赛 1010
- HDU 4737 A Bit Fun 解题报告
- 2013成都网赛1010 hdu 4737 A Bit Fun
- hdu 4737 (A Bit Fun) 异或
- hdu 4737 A Bit Fun